图解网络
小林coding
tcp/ip网络
应用层
不需要关心数据是如何传输的,是操作系统中的用户态,传输层以下则是在内核态
传输层
tcp 传输控制协议 其中包含流量控制 超时重传 拥塞控制等 为了保证数据包能稳定的传给对方
udp 不保证一定对方能接收到 但实时性更好 传输速率更高
应用传输的数据块可能非常大 如果超过了MSS(TCP报文段最大长度)就要将数据包分块 这样如果一个数据包丢失 我就可以只发送这个数据包 而不用重新发送整个数据包 我们这样一个分块 称为TCP段
当设备作为接收端时,传输层要把数据包传给应用,但一个设备上可能有很多都在接收和传输数据,需要一个编号将应用区分开来,这个编号就是端口号
80是web服务器的端口
22是远程登录服务器
对于浏览器(客户端)中的每个标签栏都是一个独立的进程,会为这些进程分配一个临时的端口号
由于传输层的报文会携带端口号,因此接受方会识别出报文是发送给哪个应用
网络层
实际的数据传输功能就交给网络层
网络层最常使用的就IP协议,IP协议会将传输层的报文作为数据部分,再加上IP报头组成IP报文,如果报文大小超过MTU(以太网一般为1500字节)就会再次进行分片,得到了一个即将发送到网络的IP报文。
网络层用IP地址给设备编号,对于IPv4协议,IP地址共32位,分为了四段,每段8位。
之后需要将IP地址分成两种意义:(否则只能一个一个去匹配)
- 网络号 负责标识IP是属于哪个子网的
- 主机号 负责标识同一子网下的不同主机
需要子网掩码来算出IP地址的网络号和主机号 需要配合子网掩码来算出网络号和主机号
10.100.122.0/24
那个/24就是255.255.255.0子网掩码
24个1 用来代替255.255.255.0
将两者进行按位与运算 就可以得到网络号和主机号
寻址的过程中,先找到相同的网络号,然后再去找对应的主机
IP协议还有一个重要的能力,就是路由功能。在网络中,数据包到达一个网络节点,就需要通过路由算法决定下一步的路径。
路由器寻址工作中,就有要找到目标地址的子网,找到后进而把数据包转发给对应的网络内。
IP协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,由于而是根据下一个目的地选择路径。寻址像是导航,路由更是像在操作方向盘。
网络接口层
网络接口层 是在IP头部的前面加上MAC头部,并封装成数据帧发送到网络上。
以太网是一种在局域网内,把附近的设备连接起来,使他们之间可以相互通信的技术。
以太网中通信要用到MAC地址,MAC头部是以太网使用的头部,它包含了接收方和发送方的MAC地址等信息,我们可以通过ARP协议获取对方的MAC地址。
网络层和传输层是只有头
网络接口层是帧头和帧尾
网络接口层的传输单位是帧
IP层的传输单位是包
TCP层的传输单位是段
HTTP层的传输单位是消息、报文