OSI 7层参考模型
- 应用层
- 表示层
- 会话层
- 传输控制层
- 网络层
- 数据链路层
- 物理层
实际物理实现
应用、表示和会话合并为应用层。
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
TCP
面向连接的、可靠的。
三次握手–> 数据传输 --> 四次分手
三次握手
- Client -> syn -> Server
- Server -> syn + ack -> Client
- Client -> ack -> Server
双方确认自己的输入输出是没有问题的。
socket
socket是对资源的包装,有接收队列、发送队列等,即上面的条目。
程序读写面向的是socket,与单机内核打交道。读即接收队列,写即发送队列。
套接字:源ip + port 目标ip + port
- 绝对唯一的连接,四元组任一不同即可。
- 目标port一般是固定的。
- 所有的port端口号总共仅有65535个。
四次分手
资源释放,不应对对方有影响。
-
Client ->
FIN=1,seq=u
-> Server -
Server ->
ACK=1,ack=u+1,seq=v
-> Client此时TCP连接处于半关闭状态,Client到Server这个方向的连接释放!
-
Server ->
FIN=1,ack=u+1
-> Client -
Client ->
ACK=1,ack=w+1
-> Server