TCP/IP
tcp/ip协议是协议家族的简称
- IP 相当于电话号码,寻址时的地址。
- TCP 面向连接的、可靠的流协议。就相当于我们在打电话前的确认、结束时的确认、控制流程。就比如说我们打电话 喂,小丽吗。好的,再见。你大点声,我听不见。
- UDP 面向无连接的通讯协议。就是不可靠的连接。
TCP/IP中的数据术语
● 数据包(packet) 是全能型术语
● 报文/消息(message) 应用层传到传输层(tcp)的数据
● 报文段(segment) TCP数据流中的信息,报文加上tcp包首部(20字节)
● 数据报(datagram) IP中数据的单位。是在报文段中添加ip包首部(20字节)
● 帧(frame) 表示数据链路层中包的单位
在子网中,计算机通过mac地址进行寻址
新入职员工加入公司网络,他会通过ARP协议(数据链路层)进行广播,公司的DHCP服务器收到广播后会根据新员工的MAC地址分配IP。
TCP连接的三次握手
思考:
- 三次握手分别发送的是什么报文
- 三次握手后客户端和服务端的状态是什么
过程
- 第一次握手
a. 客户端发起连接。客户端发起的报文中包含SYN的标志位置为1,还有一个随机值字段seq_no(比如为10000),此时客户端状态变为SYN_SENT - 第二次握手
a. 服务端发送报文。SYN标志位为1,ACK标志位为1,随机值字段ack_no为客户端的seq_no值加1,seq_no为随机值。此时服务端状态变为SYN_REVD - 第三次握手
a. 客户端发送报文。SYN标志位为1,ack_no为服务端报文seq_no的值加1。此时客户端状态变为ESTABLEISHED。
b. 服务端收到客户端发来的报文,状态变为ESTABLEISHED。
TCP四次挥手
过程:
- 第一次挥手,客户端发送关闭请求。
- 第二次挥手,服务端相应客户端关闭请求。
- 第三次挥手,服务端发送关闭请求。
- 第四次挥手,客户端发送关闭确认请求。
- 相较于建立连接的三次握手不同,四次挥手既可以是服务端率先发起请求,也可是客户端率先发送请求。而三次握手,一定是客户端率先发送请求。
为什么需要四次挥手?
TCP是双全工(即客户端和服务端可以同时发送和接收请求),所以需要双方都确认关闭连接。