浏览器浏览网页的原理,步骤 --HTTP协议到IP包

最近在看tcp/ipz详解,想了一下浏览器通过tcp/ip发送请求的整个过程,后来发现这篇文章写的挺好的!学习一下!

转自 http://blog.csdn.net/seakingwy/archive/2007/08/14/1742874.aspx

电脑上的WEB浏览器发送内容为“1001”,URL为“url”的请求通过网线得到服务期返回的原理、步骤,细到链路层,数据包的数据。

当时还真不知道怎么答,回答没有让别人满意,回来想了下,可能是要说到这个图。

更多信息:

HTTP协议的作用原理包括四个步骤:

连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文
件,此文件的建立标志着连接建立成功。

请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命
令(POST用于FORM参数的传递)。GET命令的格式为:

GET 路径/文件名 HTTP/1.0

文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。

应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,
进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求
的页面。

TCP数据报头
图2给出了TCP数据报头的格式。


源端口、目的端口:16位长。标识出远端和本地的端口号。

顺序号:32位长。表明了发送的数据报的顺序。

确认号:32位长。希望收到的下一个数据报的序列号。

TCP头长:4位长。表明TCP头中包含多少个32位字。

接下来的6位未用。
ACK:ACK位置1表明确认号是合法的。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。

PSH:表示是带有PUSH标志的数据。接收方因此请求数据报一到便可送往应用程序而不必等到缓冲区装满时才传送。

RST:用于复位由于主机崩溃或其它原因而出现的错误的连接。还可以用于拒绝非法的数据报或拒绝连接请求。

SYN:用于建立连接。

FIN:用于释放连接。

窗口大小:16位长。窗口大小字段表示在确认了字节之后还可以发送多少个字节。

校验和:16位长。是为了确保高可靠性而设置的。它校验头部、数据和伪TCP头部之和。

可选项:0个或多个32位字。包括最大TCP载荷,窗口比例、选择重发数据报等选项。

  1. 最大TCP载荷:允许每台主机设定其能够接受的最大的TCP载荷能力。在建立连接期间,双方均声明其最大载荷能力,并选取其中较小的作为标准。如果一台主机未使用该选项,那么其载荷能力缺省设置为536字节。
  2. 窗口比例:允许发送方和接收方商定一个合适的窗口比例因子。这一因子使滑动窗口最大能够达到232字节。
  3. 选择重发数据报:这个选项允许接收方请求发送指定的一个或多个数据报。

UDP协议
因特网协议组也支持无连接的传输协议UDP(user data protocol)。 UDP使用底层的因特网协议来传送报文,提供与IP一样的不可靠的、无连接的数据报传输服务。它不使用确认信息对报文的到达进行确认,不对收到的数据报进行排序,也不提供反馈信息来控制机器之间传输的信息流量。UDP通信的可靠性方面的工作,包括报文的丢失、重复、乱序等现象,由使用UDP的应用程序来承担。

一个UDP数据报包括一个8字节的头和数据部分。报头的格式如下图4所示,它包括四个长为16字节的字段。源端口和目的端口的作用与TCP中的相同,是用来标明源端和目的端的端口号。UDP长度字段指明包括8个字节的头和数据在内的数据报长度。UDP校验和字段是可选项,用于纪录 UDP头、UDP伪头、用户数据三者的校验和。


IP协议
IP协议提供了不可靠的、无连接的数据报传输机制。TCP/IP是为了适应物理网络的多样性而设计的,而这种适应性主要是通过IP层来体现的。由于物理网络的多样性,各种物理网络的数据帧格式、地址格式之间的差异很大。为了将这些底层的细节屏蔽起来,使得采用不同物理网络的网络之间进行通讯, TCP/IP分别采用了IP数据报和IP地址作为物理数据帧与物理地址的统一描述形式。这样IP向上层提供统一的IP数据报和统一的IP地址,使得各种物理帧及物理地址的差异性对上层协议不复存在。

4.1 IP数据报头
一个IP数据报由一个头部和数据部分构成。头部包括一个20字节的固定长度部分和一个可选任意长度部分。头部格式如图5所示。


版本:4位长。记录了数据报对应的协议版本号。当前的IP协议有两个版本:IPV4 和IPV6。

IHL:4位长。代表头部的总长度,以32位字节为一个单位。

服务类型:8位长。使主机可以告诉子网它想要什么样的服务。如下图所示,服务类型域又分为了5个部分。优先权字段是标志优先级的;三个标志位分别代表延迟、吞吐量、可靠性。


总长:16位。指头部和数据的总长。最大长度是65535个字节。

标识:16位。通过它使目的主机判断新来的分段属于哪个分组,所有属于同一分组的分段包含同样的标识值。

DF:代表不要分段。它命令路由器不要将数据报分段,因为目的端不能重组分段。

MF:代表还有进一步的分段,用它来标志是否所有的分组都已到达。除了最后一个分段的所有分段都设置了这一位。

分段偏移:13位。标明分段在当前数据报的什么位置。

生命期:8位。用来限制分组生命周期的计数器。它在每个节点中都递减,而且当在一个路由器中排队时可以倍数递减。

协议:8位。说明将分组发送给那个传输进程,如TCR、VDP等。

头校验和:16位。仅用来校验头部。

源地址: 32位。产生IP数据报的源主机IP地址。

目的地址:32位。IP数据报的目的主机的IP地址。

可选项:是变长的。每个可选项用一个字节标明内容。有些可选项还跟有一字节的可选项长度字段,其后是一个或多个数据字节。现在已定义了安全性、严格的源路由选择、松的源路由选择、记录路由和时间标记五个可选项。但不是所有的路由器都支持全部5个可选项。

安全性选项说明了信息的安全程度。

严格的源路由选择选项以一系列的IP地址方式,给出了从源到目的地的完整路径。数据报必须严格地从这条路径传送。当路由选择表崩溃,系统管理员发送紧急分组时,或作时间测量时,此字段很有用。

松的源路由选择选项要求分组遍及所列的路由器,但它可以在其间穿过其它的路由器。

记录路由选项让沿途的路由器都将其IP地址加到可选字段之后,这使系统管理者可以跟踪路由选择算法的错误。

时间标记选项像记录路由选项一样,除了记录32位的IP地址外,每个路由器还要记录一个32位的时间标记。同样地,这一选择可用来为路由选择算法查错

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值