欢迎光临散文网 会员登陆 & 注册

丁鹿学堂:前端工程师要了解的网络协议知识(2)

2023-03-17 00:40 作者:丁鹿学堂前端培训  | 我要投稿

互联网协议群(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.第四次分手:客户端收到,发送同意断开连接

我们可以类比我们请假下班的情况。
员工:有点事儿,我要请假下班(第一次分手)
老板:收到,同意(第二次分手)
员工:打下班卡(第三次分手)
老板:确认打卡,记录同意。(第四次分手)


丁鹿学堂:前端工程师要了解的网络协议知识(2)的评论 (共 条)

分享到微博请遵守国家法律