网络通信的整体流程

15854876-2d28625195a92156.png
网络包的旅程.png

说明

1.首先,用户输入网址
2.浏览器解析网址,生成HTTP消息并转交给Socket库
3.Socket库将收到的HTTP消息作为数据转交给协议栈
4.TCP按照网络包的长度对数据进行拆分,在每个包前面加上TCP头部并且转交给IP
5.IP在TCP包前面加上IP头部,然后查询MAC地址并加上MAC头部,然后将包转交给网卡驱动(MAC地址为最近的路由器的MAC地址,IP地址为Web服务器的IP地址)
6.网卡驱动收到IP发来的包,将其转交给网卡并发出发送指令
7.网卡检查以太网的可发送状态,将包转换成电信号通过双绞线发送出去
8.信号通过双绞线到达集线器
9.集线器将信号广播到所有端口,这样信号便到达交换机
10.交换机根据收到的包的接收方MAC地址查询自身的地址表输出端口,并将包转发到输出端口
11.互联网接入路由器根据收到的包的接收方IP地址查询自身的地址表输出端口,并将包转发到输出端口
12.互联网接入路由器输出到互联网的包带有PPPoE头部和PPP头部
13.ADSL Modem将收到的包拆分成ATM信元
14.ADSL Modem将拆分后的ATM信元转换成电信号通过电话线发送出去
15.ADSL Modem发送的信号经过电线杆上的电话线到达电话局的DSLAM(局端多路Modem)
16.DSLAM将收到的电信号还原成ATM信元并发送给BAS
17.BAS将ATM信元还原成网络包,根据接收方IP地址进行转发
18.BAS转发的包被加上L2TP头部并通过隧道
19.网络包到达位于隧道出口的隧道路由器,L2TP头部和PPP头部被丢弃,通过互联网流向Web服务器
20.服务器端的局域网中有防火墙,对进入的包进行检查,判断是否允许通过(这时的接收方MAC地址为缓存服务器或者Web服务器的MAC地址)
21.Web服务器前面如果有缓存服务器,会拦截通过防火墙的包。如果用户请求的页面已经缓存在服务器上,则代替服务器向用户返回页面数据
22.如果请求的页面没有被缓存,缓存服务器会将请求转发给Web服务器(此时接收方MAC地址为Web服务器的MAC地址)
23.Web服务器收到包后,网卡和网卡驱动会接收这个包并转交给协议栈
24.协议栈依次检查IP头部和TCP头部,如果没有问题则取出HTTP消息的数据块进行组装
25.HTTP消息恢复成原始状态,然后通过Socket库转交给Web服务器
26.Web服务器分析HTTP消息的内容,并根据请求内容将读取的数据返回给客户端


TCP/IP

15854876-8ac0ad1469f477f0.png
TCP_IP软件分层结构.png

猜你喜欢

转载自blog.csdn.net/weixin_33918357/article/details/87165559