网络协议三要素

计算机语言作为程序员控制一台计算机工作的协议,具备了协议的三要素。

  • 语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。
  • 语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。
  • 顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。

只有通过网络协议,才能使一大片机器互相协作、共同完成一件事。

DNS、HTTP、HTTPS 所在的层我们称为应用层。经过应用层封装后,浏览器会将应用层的包交给下一层去完成,通过 socket 编程来实现。下一层是传输层。传输层有两种协议,一种是无连接的协议 UDP,一种是面向连接的协议 TCP。对于支付来讲,往往使用 TCP 协议。所谓的面向连接就是,TCP 会保证这个包能够到达目的地。如果不能到达,就会重新发送,直至到达。

TCP 协议里面会有两个端口,一个是浏览器监听的端口,一个是电商的服务器监听的端口。操作系统往往通过端口来判断,它得到的包应该给哪个进程。

传输层封装完毕后,浏览器会将包交给操作系统的网络层。网络层的协议是 IP 协议。在 IP 协议里面会有源 IP 地址,即浏览器所在机器的 IP 地址和目标 IP 地址,也即电商网站所在服务器的 IP 地址。

数据包在网络中传输,应用层,传输层,网络层的数据是不变的。 一直在变的是数据链路层下一跳的MAC地址。

如果过一段时间还是没到,发送端的 TCP 层会重新发送这个包,还是上面的过程,直到有一天收到平安到达的回复。这个重试绝非你的浏览器重新将下单这个动作重新请求一次。对于浏览器来讲,就发送了一次下单请求,TCP 层不断自己闷头重试。除非 TCP 这一层出了问题,例如连接断了,才轮到浏览器的应用层重新发送下单请求。

此文章为9月Day1学习笔记,内容来源于极客时间《趣谈网络协议》,推荐该课程。

相关推荐
TinpeaV2 小时前
websocket入门详解
java·网络·spring boot·websocket·网络协议
爱学习的章鱼哥2 小时前
计算机网络|| 网络协议分析
网络·网络协议·计算机网络
-曾牛2 小时前
基于微信小程序的在线聊天功能实现:WebSocket通信实战
前端·后端·websocket·网络协议·微信小程序·小程序·notepad++
八月的雨季 最後的冰吻4 小时前
SIP协议栈--osip源码梳理
linux·服务器·网络·c++·网络协议
若汝棋茗4 小时前
基于TouchSocket实现WebSocket自定义OpCode扩展协议
网络·websocket·网络协议
利刃大大6 小时前
【网络编程】九、详解 HTTPS 加密原理
网络·网络协议·https
wudinaniya7 小时前
笔记本电脑打开网页很慢,一查ip地址网段不对怎么处理
网络·网络协议·tcp/ip·电脑
XY.散人8 小时前
初识Linux · IP分片
网络·网络协议·tcp/ip
绵山介子推8 小时前
IP地址、端口、TCP介绍、socket介绍、程序中socket管理
网络协议·tcp/ip·php·嵌入式软件
萌狼蓝天9 小时前
[SSL]1Panel添加阿里云DNS账户
网络·网络协议·阿里云·云计算·ssl