今日内容
-
网络部分剩余
socket套接字: socket抽象层处于应用层与传输层之间,是对传输层及其以下的封装。应用程序产生的数据包想要往外传输,直接导入socket模块,然后传给socket就可以了,socket会完成后续的封装。如果没有socket套接字,需要研究大量的协议,然后再学习封装,为了方便,创造了socket套接字。 cs架构与bs架构: 基于网络通信的软件有两种架构 client----------server '正常客户端' 内部存有对应的应用程序 browser---------server '超级客户端' # 例:浏览器 兼容了很多服务端在一起,可以做到其他客户端各自能做到的事情 dns:域名解析 https://www.baidu.com.:80 80:服务端端口 com后面的'.':根 com->*域名 # com是商业组织 baidu->二级域名 www->主机名 全球一共13台根服务器,根服务器只存放解析*域名的ip地址 # dns的查询走udp协议,udp协议有效传输的数据量只有512字节,这里面包含了你的查询信息和根ds服务器的ip地址,放13台根服务器已经是极限了,所以无法再加根服务器。 *域服务器存放解析二级域名的ip地址 二级域服务器存放解析二级域服务器里主机的ip地址 计算机怎么找网站对应的ip地址: 浏览器DNS缓存->本地系统DNS缓存->本地计算机HOSTS缓存->ISP DNS缓存->递归or迭代搜索 # 递归:1问2,2问3.3问4,4回答3,3回答2,2回答1 # 迭代:1问2,2让1问3,3让1问4,4回答1 hosts文件可以充当本地dns使用 linux:/etc/hosts windows:C:\Windows\System32\drivers\etc\hosts dhcp: 动态获取ip地址,子网掩码,网关,dns等。 # 一开机电脑就会自动运行dhcp的客户端软件 ''' dhcp服务端端口67 dns服务端端口53 ''' 网络通信整体流程 1.开机,开机时自动运行dhcp客户端,动态获取本机的ip地址,子网掩码,网关得出ip地址,DNS的ip地址。 2.打开浏览器,输入url地址。 3.浏览器把url地址发给DNS,DNS解析后还出来ip地址。 4.浏览器基于tcp协议和服务端建立双向链接。 5.传输数据,先应用层(http协议等)封装,再交给传输层(tcp协议)封装同时加上tcp数据包的包头,再交给网络层(ip协议)封装同时加上ip数据包的包头,再交给数据链路层(以太网协议)分批次发,每个批次都要加上以太网数据包的包头,最后在物理层转换为bit。 # 千兆网卡上的线的顺序(常识):橙白,橙,绿白,蓝,蓝白,绿,棕白,棕
-
交换机
交换机是二层设备 如果想要两个交换机互相传数据,需要在两个交换机之间连接一个路由器。 同一个交换机分出两个局域网,叫做划分VLAN。 # 划分VLAN是二层隔离 802.1Q协议标准定义了VLAN头的格式,它在以太网帧结构的SA后加入了4bytes的VLAN头数据,其中包括了12bit的VLAN ID。 # VLAN ID的最大值为4096,有效范围是1-4094 如果包送到了VLAN1号口,没有找到目标mac地址,就会广播,只会广播给连接了VLAN1号口的设备。 ''' Access口:收到的包没有VLAN标记,发出去的包也没有VLAN标记。 Trunk口:收到的包有VLAN标记,发出去的包也有VLAN标记。 ''' 两个交换机连接起来的口应该是Trunk口,其他连接计算机的口应该是Access口。 # 交换机广播需要知道VLAN频道,所以收到的包要带上VLAN标记才行 # 因为需要实实在在的传给一个计算机,所以收到的包不能带上VLAN标记