网络模型/TCP | 青训营笔记

115 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 17 天 HTTP 连接是建立在 TCP* 协议之上的,其数据传输功能是由TCP完成的,那TCP又是什么呢?

TCP 是一个单纯用来建立通信连接,并传输数据的基础协议,属于网络模型中的的传输层。

OSI 模型(Open System Interconnection Model)是一个由国际标准化组织(ISO)提出的概念模型,目的是为计算机网络提供一个标准框架。它将计算机网络体系结构划分为七层,每层都提供抽象良好的接口,负责不同的职责。了解 OSI 模型有助于理解实际上互联网络的工业标准——TCP/IP 协议,以及前端开发常用的HTTP协议。

OSI七层模型 TCP/IP概念层模型 功能 TCP/IP协议族
应用层 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP, HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的连接点的联系 没有协议
传输层 传输层 提供端对端的接口 TCP,UDP
网络层 网络层 为数据包选择路由 IP,ICMP, RIP,OSPF,BGP,IGMP
数据链路层 链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 以二进制数据形式在物理媒体上传输数据 IS02110,IEEE802,IEEE802.2
要建立TCP连接需要:①请求 --> ②确认 --> ③建立连接,就是著名的三次握手 。TCP的三次握手建立连接后,就可以开始进行通信(数据传输)了。所以要正式通信一次,前期要传输交换多次信息(多次握手),这么做的目的是为了确保双方的状态正确,保障数据的传输是完整、有序、可靠无差错的。

第一次握手:客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认。
第二次握手:服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入连接成功状态,完成三次握手。夫妻对拜,礼成,进入洞房!