网络通信的过程,以及中间用了什么协议
简单总结下:
客户端:
- 1、在浏览器输入网址
- 2、浏览器解析网址,并生成
http
请求消息 - 3、浏览器调用系统解析器,发送消息到DNS服务器查询域名对应的
ip
- 4、拿到ip后,和请求消息一起交给操作系统协议栈的
TCP模块
- 5、将数据分成一个个数据包,并加上TCP报头形成
TCP数据包
- 6、TCP报头包括发送方端口号、接收方端口号、数据包的
序号、ACK号
。 - 7、然后将
TCP消息
交给IP模块。 - 8、IP模块会添加
IP头部
和MAC头部
。 - 9、IP头部包括
IP地址
,为IP模块使用,MAC头部包括MAC地址,为数据链路层使用。 - 10、
IP模块
会把整个消息包交给网络硬件,也就是数据链路层,比如以太网,WIFI等 - 11、然后网卡会将这些包转换成
电信号或者在光信号
,通过网线或者光纤发送出去,再由路由器等转发设备送达接收方。
服务器端:
- 1、数据包到达服务器的
数据链路层
,比如以太网,然后会将其转换为数据包(数字信号)交给IP模块
。 - 2、
IP模块
会将MAC头部和IP头部后面的内容,也就是TCP数据包发送给TCP模块。 - 3、
TCP模块
会解析TCP头信息,然后和客户端沟通表示收到这个数据包了。 - 4、
TCP模块
在收到消息的所有数据包之后,就会封装好消息,生成相应报文发给应用层,也就是HTTP层。 - 5、
HTTP层
收到消息,比如是HTML数据,就会解析这个HTML数据,最终绘制到浏览器页面上。