×

前端 学堂 工程师 协议 总结

丁鹿学堂:前端工程师要懂的网络协议总结(2)

jnlyseo998998 jnlyseo998998 发表于2023-04-04 19:38:03 浏览22 评论0

抢沙发发表评论

互联网协议群(TCPIP协议群)

类似osi模型,是一种网络协议的概念模型。 是如今应用最广泛的模型。它对ois进行了简化,把osi的应用层,会话层和表现层简化为了应用层。

这样更符合做架构的习惯。所以总共有5层。

应用层,传输层,网络层,链接层,物理层。

应用层

提供应用间通信能力。

应用层是对顶层api的一个抽象。比如http协议。

传输层

提供主机到主机的通信能力,比如TCP、UDP协议

比如他们要求主机带一个端口号,这个端口号就代表应用。浏览器常用的是80端口,代表是web服务。

网络层

提供地址到地址的通信能力

比如ip协议。数据从一个ip地址到另一个ip地址,中间会有很多网络设备,通过ip协议进行规范传输。

链接层

提供的是设备到设备的通信能力

在一个局域网内,不同的设备会有不同的标识号,这个标识号不是ip地址,而是mac地址。

TCP/IP封包

最上层是应用层,应用层的数据是我们程序员自己定义的数据。

展开全文

当我们的这组数据要传输的时候(从客户端到服务器),通常会转换成传输层的数据格式。比如TCP Header 和TCP 数据这样的格式。TCP Header 包含了传输的原端口号和目标端口号一类的数据。

在传输过程中,在网络传输中又会转化成网络层的数据格式,比如会添加ip Header和ip数据,这个头部会增加原地址和目标地址。传输层的数据在网络层会被切成更小的片段。

在链接层会增加一个头部和尾部,因为数据到了链接层都会转换为二进制的数据,用头部去区分不同的块的数据。

TCP协议的三次握手

1.第一次握手:客户端发送请求建立连接,请求报文段。

2.第二次握手:服务器收到请求,发送同意并请求与客户端建立连接。

3.第三次握手:客户端收到请求,发送同意与服务器建立连接。

为什么要进行三次握手?一句话就是,防止服务器端的一直等待而浪费资源

解决传输顺序问题

首页要确定消息的顺序。不能使用时间,因为服务器之间真实时间不可得,而且服务器之间不能保证没有时差。

消息的绝对顺序用SEQ,和ACK 这一对元组表示。

SEQ;这个消息发送前一共发送了多少字节

ACK:这个消息发送前一共收到了多少字节

TCP协议的四次分手

1.第一次分手:客户端发送断开请求

2.第二次分手:服务器收到断开请求,发送同意断开连接的请求

3.第三次分手:服务器发送请求断开连接

4.第四次分手:客户端收到,发送同意断开连接

我们可以类比我们请假下班的情况。

员工:有点事儿,我要请假下班(第一次分手)

老板:收到,同意(第二次分手)

员工:打下班卡(第三次分手)

老板:确认打卡,记录同意。(第四次分手)