这一章从tcp协议工作开始一直讲到了信号从网卡发送出去。
- tcp的三次握手与四次挥手
- tcp头部的内容
- ip协议栈中的ip头部、mac头部
- 电信号的典型样子
tcp的三次握手与四次挥手是非常经典的问题。本质原因在于tcp是一个双向通信协议。个人理解专门记录成文章。
tcp的头部
tcp报文由头部和数据组成。头部主要有
- 两方的端口信息
- seq(发送时的需要),ack(返回的确认信息)的控制信息
- 窗口大小
seq,ack信息主要用作发送过程中对数据的校验。
窗口大小则是为了提高性能。当发送了一次tcp消息后,不需要等到对方的回复确认,直接开始第二个tcp消息的确认,只要对方的处理速度能跟得上就没有问题。
同时,而对方的回复也不需要每次都回复,可以多个进行合并。
ip协议栈
ip协议栈模块会给消息添加ip头部、mac头部
路由器根据ip协议判断下一个路由器的位置
交换机在子网中根据以太网协议将网络包传递给路由器
ip 头部最重要的信息是发送方、接收方的ip地址。
mac头部最重要的信息是发送方、接收方的mac地址。
从应用程序传下来的只有目标方的ip地址,因此需要通过ARP(address resolution protocol)进行解析(参考子网掩码的简单记录) 获取到每一次传输时需要的mac地址(在每次传输过程中,接收方mac地址都在不停变化,而接收方的ip地址是不变化的)
电信号的典型特征
将01的数据信号转换为高低起伏的电信号非常自然。问题是多个0多个1相连的时候,接收方如何进行数据划分。因此需要有数据时钟的问题。而时钟是不可能做到同步的,因此在数据之前加上一段单独的高低起伏的时钟信号。