这是我参与伴读笔记创作活动的第5天
网络接入
同网段:为虚拟网络段,可以是多个交换机互相连接,同时路由不一定是对称的
路由是工作在IP层,路由协议并不一定是工作在IP层,如RIP基于UDP,BGP基于TCP,RIP和BGP二者属于应用层协议,OSPF和EIGRP基于IP,所以OSPF属于传输层协议。路由并不是改的IP地址,是改的MAC地址,找到发包口,源IP地址和⽬标IP地址在传输过程中是不会变化的,只有源 MAC 地址和⽬标 MAC ⼀直在变化。
如何寻找下一跳的MAC
通过ARP协议,其本质是查找下一跳的MAC地址,而不是请求目标地址,逻辑同网段才能发送ARP,源发送ARP广播请求,目标收到后发出ARP应答单播。
网络接入-IP协议
IP协议是唯一标识,互联网通用
Mac地址为什么不能代替IP地址:Mac协议是一个二层协议,二层协议有很多,如电话拨号等,如果用Mac代替IP,则向下不兼容。IP协议是为了统一封装所有二层协议,实现兼容,并且Mac地址不容易维护。
IPv4不够用如何解决:使用IPv6代替,或NAT。在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
NAT的实现方式有三种:
静态转换:将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。 动态转换:将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。 端口多路复用:将不同私网地址的报文的源IP地址转换为同一公网地址,但他们被转换为该地址的不同端口号,因而仍然能够共享同一地址。
NAT是IP+端口一起改变的,NAT设备会维护一张表,记录这种改变。
DNS的传输协议UDP
UDP本身相对简单,头只有16位源端口号,16位目的端口号,16位UDP长度,16位校验和,想法什么包,就分配一个UDP的头,把payload里面塞数据发出去就好。
网络传输-TCP三次握手
网线断了之后TCP连接逻辑上不会断,假设TCP有探活(定时发送心跳包),会发现连接收不到ACK,就会断开连接。
TCP三次握手能防止历史连接的建立,减少双方不必要的资源开销,帮助双方同步初始化序列号(序列号保证数据包不重复,不丢弃和按序传输)
TCP三次握手的时候确认MSS(最大分段大小),当TCP发现数据超过MSS时,就会先分片,所以其生成的IP包也就不会大于MTU,自然不会用IP分片。
sequence number:表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置。
acknowledge number:表示的是期望的对方(接收方)的下次sequence number是多少。