服务器端然后判断收到的信息种类6,第6章:请求到达Web服务器,相应返回浏览器...

1.客户端和服务器的区别

(1)硬件和操作系统不同。

(2)TCP/IP的功能相同,但是用法不同,客户端用来发起连接,而服务器端要等待连接。即应用程序调用Socket库的程序组件不同。

(3)服务器程序可以同时和多台客户端计算机进行通信。

(4)虽然有很多不同,但是客户端计算机也可以用来当作服务器使用,只是性能和可靠性比较差。

2.使用描述符代替套接字的原因

(1)等待连接的套接字中没有客户端IP地址和端口号,无法确定套接字。

(2)使用描述符这一消息比较简单。

3.连接中网卡的作用

(1)网卡的MAC模块将网络包从信号还原成数字信息,校验FCS(帧校验序列)并存入缓存区。

(2)网卡驱动会根据MAC头部判断协议类型,并将包交给相应的协议栈。

4.IP模块的接收操作

协议栈的IP模块会检查IP头部

(1)判断是不是发给自己的。

(2)判断网络包是否经过分片。

(3)将包转给TCP模块或者UDP模块。

5.TCP模块如何处理连接包

如果收到的包是连接包,则TCP模块会

(1)确认TCP头部的控制位SYN。

(2)检查接收方端口号。

(3)为相应的等待连接套接字复制一个新的副本。

(4)记录发送方Ip地址和端口号等信息。

6.TCP模块如何处理数据包

收到数据包时,TCP模块会

(1)根据收到包的发送方IP地址、端口号、接收方IP地址、端口号找到相应的套接字。

(2)将数据块拼合起来保存在接收缓存区中。

(3)向客户端返回ACK。

注意:

*(1)服务器向客户端的响应消息,和客户端向服务器发起的请求消息不一定通过相同的路由传输。具体走哪条路由,是通过路由器的路由表和交换机的地址表的配置决定的。

*

总结:网络包的旅程

(1)首先,用户输入网址。

(2)浏览器解析网址,生成http消息并转交给Socket库。

(3)Socket库将收到的http消息作为数据交给协议栈。

(4)TCP按照网络包的长度对数据进行拆分,在每个包前面加上TCP头部并交给IP。

(5)IP在TCP包前面加上IP头部,然后查询MAC地址并加上MAC头部,然后将包交给网卡驱动。

(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)服务器的局域网中有防火墙,对进入的包进行检查,判断是否允许通过。

(21)Web服务器前面如果有缓存服务器,会拦截通过防火墙的包。如果用户请求的页面已经缓存在服务器上,则代替服务器向用户返回页面数据。

(22)如果请求的页面没有被缓存,缓存服务器会将请求转发给Web服务器。

(23)Web服务器收到包后,网卡和网卡驱动会接收这个包并转发给Web服务器。

(24)协议栈依次检查IP头部和TCP头部,如果没有问题则取出HTTP消息的数据块并进行组装。

(25)HTTP消息被恢复成原始状态,然后通过Socket库转交给Web服务器。

(26)Web服务器分析http消息的内容,并根据请求内容将读取的数据返回客户端。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值