协议栈:网络控制软件
网卡:网络硬件
协议栈的内部结构:
TCP:transmission control protocol传输控制协议
一般用于浏览器,邮件等应用程序收发数据
UDP:user datagram protocol 用户数据报协议
用于DNS查询等收发较短的控制数据
IP:Internet Protocol 将网络包发送给通信对象
ICMP:Internet Control Message Protocol 传送错误和控制信息
ARP:Address Resolution Protocol 地址解析协议,访问MAC地址
套接字:记录通信过程中的控制信息,协议栈根据这一控制信息来工作。
消息收发操作:
头部:记录和交换控制信息
控制信息的两类:
(1)客户端和服务器之间,即头部的控制信息
(2)套接字的控制信息,控制协议栈
连接步骤:
(1)tcp模块创建表示连接信息的头部
(2)IP模块负责发送
(3)服务器的IP模块将收到的信息传递给TCP模块,tcp模块根据头部信息的端口号找到对应的套接字。
(4)服务器的TCP模块委托IP模块返回响应
(5)客户端通过TCP头部信息确认连接是否成功
(6)客户端将ACK位设置为1返回给服务器
收发数据:
MTU:Maximum Transmission Unit网络包的最大长度,以太网为1500字节
MSS:Maximum Segment Size去掉头部后可容纳的最大长度
协议栈发送数据要考虑网络包的长度和时间延迟
应用程序数据的拆分发送:
总结数据收发操作的步骤:
1.创建套接字
2.客户端发起连接操作,建立连接
3.收发数据
4.断开操作
网络包的结构:
MAC头部:以太网协议,传输包到下一个路由器
IP头部:IP协议,携带服务器的IP地址
IP网络包的传输方式:
IP模块的工作:负责添加两个头部,IP头部和MAC头部
MAC地址:48比特
MAC地址的两种写法:
以太网的基本结构:
MAC:media access control 媒体访问控制
网卡发送出去的包:
FCS:用于检测传输错误的帧校验序列
将包通过网线发送出去的方式:
(1)集线器 半双工
(2)交换机 全双工
UDP协议的收发操作:
使用场景:DNS查询,发送视频和音频数据
Q&A:
在收到 ACK 号之前继续发送下一个包的方式叫什么?
滑动窗口