网络访问流程 与 http流程

   1.若DNS缓存中没有相关数据,则IE浏览器先向DNS服务器发出DNS请求:目的是获取www.sina.com这域名所对应的IP地址;

 

        IE浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;

        DNS模块将生成的DNS报文传递给传输层的UDP协议单元;

        UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元;

        IP协议单元将该数据封装成IP数据包,其中目的IP地址为DNS服务器的IP地址;

        封装好的IP数据包将传递给数据链路层的协议单元进行发送;

 

        发送时如果ARP缓存中没有相关数据,则发送ARP广播请求,等待ARP回应;

        得到ARP回应后,将IP地址与路由下一跳MAC地址对应的信息写入ARP缓存表;

        写入缓存后,以路由下一跳地址填充目的MAC地址,并以数据帧形式转发;

        这个转发过程可能会进行多次,这取决于DNS服务器在校园网中的位置;

        DNS请求被发送到DNS服务器的数据链路层协议单元;

        DNS服务器的数据链路层协议单元解析收到的数据帧,将其内部所含有的IP数据包传递给网络层IP协议单元;

        DNS服务器的IP协议单元解析收到的IP数据包,将其内部所含有的UDP数据报传递给传输层的UDP协议单元;

        DNS服务器的UDP协议单元解析收到的UDP数据包,将其内部所含有的DNS报文传递给该服务器上的DNS服务单元;

        DNS服务单元收到DNS请求,将域名解析为对应的IP地址,产生DNS回应报文;

        (所有应用层报文必须通过传输层、网络层和数据链路层,因此在下面的叙述中,我将简化这一过程的叙述,简化形式如下面的样子,其中单箭头为本机内部传递,双箭头为网络上的发送)

 

        DNS回应报文→UDP→IP→MAC→→请求域名解析的主机;

        请求域名解析的主机收到数据帧,该数据帧→IP→UDP→DNS→IE浏览器;

        将域名解析的结果以域名和IP地址对应的形式写入DNS缓存表。

 

2.IE浏览器与www.sina.com.cn建立TCP连接:

        IE浏览器向www.sina.com.cn发出TCP连接请求报文;

        该请求TCP报文中的SYN标志位被设置为1,表示连接请求;

        该TCP请求报文→IP(DNS)→MAC(ARP)→→校园网关→→www.sina.com.cn主机;

        该TCP请求报文经过IP层时,填入的目的IP地址就是上面DNS过程获得的IP地址;

        经过数据链路层时,若MAC地址不明,还要进行上面所叙述的ARP过程;

        www.sina.com.cn收到的数据帧→IP→TCP,TCP协议单元会回应请求应答报文;

        该请求应答TCP报文中的SYN和ACK标志位均被设置为1,表示连接请求应答;

        该TCP请求应答报文→IP→MAC(ARP)→→校园网关→→请求主机;

        请求主机收到数据帧→IP→TCP,TCP协议单元会回应请求确认报文;

        该请求应答TCP报文中的ACK标志位被设置为1,表示连接请求确认;

        该TCP请求确认报文→IP→MAC(ARP)→→校园网关→→www.sina.com.cn主机;

        www.sina.com.cn收到的数据帧→IP→TCP,连接建立完成;

        在这个过程中,任何一个报文出错或超时,都要进行重传;

        这个过程被称为TCP建立连接的三次握手。

 

3.IE浏览器开始HTTP访问过程

        IE浏览器向www.sina.com.cn发出HTTP-GET方法报文;

        该HTTP-GET方法报文→TCP→IP→MAC→→校园网关→→www.sina.com.cn主机;

        www.sina.com.cn收到的数据帧→IP→TCP→HTTP,HTTP协议单元会回应HTTP协议格式封装好的HTML超文本形式数据;

        HTTP-HTML数据→TCP→IP→MAC(ARP)→→校园网关→→请求主机;

        请求主机收到的数据帧→IP→TCP→HTTP→IE浏览器,浏览器会以网页形式显示HTML超文本,就是我们所看到的网页。

 

4.断开TCP连接

        IE浏览器向www.sina.com.cn发出TCP连接结束请求报文;

        该请求TCP报文中的FIN标志位被设置为1,表示结束请求;

        该TCP结束请求报文→IP→MAC(ARP)→→校园网关→→www.sina.com.cn主机;

        www.sina.com.cn收到的数据帧→IP→TCP,TCP协议单元会回应结束应答报文;

        该结束应答TCP报文中的FIN和ACK标志位均被设置为1,表示结束应答;

        该TCP结束应答报文→IP→MAC(ARP)→→校园网关→→请求主机;

        这个过程需要双向进行,因此www.sina.com.cn主机也会按上述流程再做一次;

        整个过程被称为TCP断开连接的四次握手

       

       

       

        .1.255                     255.255.255.255       192.168.1.101       192.168.1.101           10

 224.0.0.0                            240.0.0.0                   192.168.1.101       192.168.1.101           10

255.255.255.255                 255.255.255.255       192.168.1.101       192.168.1.101           1

Default Gateway:                192.168.1.2

 

Network Destination 目的网段 

Netmask 子网掩码 

Gateway 下一跳路由器入口的ip,路由器通过interface和gateway定义一调到下一个路由器的链路,通常情况下,interface和gateway是同一网段的。

Interface 到达该目的地的本路由器的出口ip(对于我们的个人pc来说,通常由机算机A的网卡,用该网卡的IP地址标识,当然一个pc也可以有多个网卡)。

 

网关这个概念,主要用于不同子网间的交互,当两个子网内主机A,B要进行通讯时,首先A要将数据发送到它的本地网关,然后网关再将数据发送给B所在的网关,然后网关再发送给B。

默认网关,当一个数据包的目的网段不在你的路由记录中,那么,你的路由器该把那个数据包发送到哪里!缺省路由的网关是由你的连接上的default gateway决定的,也就是我们通常在网络连接里配置的那个值。

 

通常interface和gateway处在一个子网内,对于路由器来说,因为可能具有不同的interface,当数据包到达时,根据Network Destination寻找匹配的条目,如果找到,interface则指明了应当从该路由器的那个接口出去,gateway则代表了那个子网的网关地址。

 

第一条      0.0.0.0  0.0.0.0   192.168.1.2    192.168.1.101   10

0.0.0.0代表了缺省路由。该路由记录的意思是:当我接收到一个数据包的目的网段不在我的路由记录中,我会将该数据包通过192.168.1.101这个接口发送到192.168.1.2这个地址,这个地址是下一个路由器的一个接口,这样这个数据包就可以交付给下一个路由器处理,与我无关。该路由记录的线路质量 10。当有多个条目匹配时,会选择具有较小Metric值的那个。

 

第三条      192.168.1.0   255.255.255.0  192.168.1.101   192.168.1.101  10

直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的interface和gateway是同一个。当我接收到一个数据包的目的网段是192.168.1.0时,我会将该数据包通过192.168.1.101这个接口直接发送出去,因为这个端口直接连接着192.168.1.0这个网段,该路由记录的线路质量 10 (因interface和gateway是同一个,表示数据包直接传送给目的地址,不需要再转给路由器)。

 

一般就分这两种情况,目的地址与当前路由器接口是否在同一子网。如果是则直接发送,不需再转给路由器,否则还需要转发给下一个路由器继续进行处理。

 

 

 

查找到下一跳ip地址后,还需要知道它的mac地址,这个地址要作为链路层数据装进链路层头部。这时需要arp协议,具体过程是这样的,查找arp缓冲,windows下运行arp-a可以查看当前arp缓冲内容。如果里面含有对应ip的mac地址,则直接返回。否则需要发生arp请求,该请求包含源的ip和mac地址,还有目的地的ip地址,在网内进行广播,所有的主机会检查自己的ip与该请求中的目的ip是否一样,如果刚好对应则返回自己的mac地址,同时将请求者的ip mac保存。这样就得到了目标ip的mac地址。

 

链路层

 

将mac地址及链路层控制信息加到数据包里,形成Frame,Frame在链路层协议下,完成了相邻的节点间的数据传输,完成连接建立,控制传输速度,数据完整。

 

物理层

 

物理线路则只负责该数据以bit为单位从主机传输到下一个目的地。

 

下一个目的地接受到数据后,从物理层得到数据然后经过逐层的解包 到链路层 到 网络层,然后开始上述的处理,在经网络层 链路层 物理层将数据封装好继续传往下一个地址。

 

在上面的过程中,可以看到有一个路由表查询过程,而这个路由表的建立则依赖于路由算法。也就是说路由算法实际上只是用来路由器之间更新维护路由表,真正的数据传输过程并不执行这个算法,只查看路由表。这个概念也很重要,需要理解常用的路由算法。而整个tcp协议比较复杂,跟链路层的协议有些相似,其中有很重要的一些机制或者概念需要认真理解,比如编号与确认,流量控制,重发机制,发送接受窗口。

 

 

 

tcp/ip基本模型及概念

 

 

物理层

 

设备,中继器(repeater),集线器(hub)。对于这一层来说,从一个端口收到数据,会转发到所有端口。

 

 

链路层

 

协议:SDLC(Synchronous Data Link Control)HDLC(High-level Data Link Control) ppp协议独立的链路设备中最常见的当属网卡,网桥也是链路产品。集线器MODEM的某些功能有人认为属于链路层,对此还有些争议认为属于物理层设备。除此之外,所有的交换机都需要工作在数据链路层,但仅工作在数据链路层的仅是二层交换机。其他像三层交换机、四层交换机和七层交换机虽然可对应工作在OSI的三层、四层和七层,但二层功能仍是它们基本的功能。

 

因为有了MAC地址表,所以才充分避免了冲突,因为交换机通过目的MAC地址知道应该把这个数据转发到哪个端口。而不会像HUB一样,会转发到所有滴端口。所以,交换机是可以划分冲突域滴。

 

 

网络层

 

四个主要的协议:  

网际协议IP:负责在主机和网络之间寻址和路由数据包。    

地址解析协议ARP:获得同一物理网络中的硬件主机地址。    

网际控制消息协议ICMP:发送消息,并报告有关数据包的传送错误。    

互联组管理协议IGMP:被IP主机拿来向本地多路广播路由器报告主机组成员。

 

该层设备有三层交换机,路由器。

 

 

传输层

 

两个重要协议 TCP 和 UDP 。

 

端口概念:TCP/UDP 使用 IP 地址标识网上主机,使用端口号来标识应用进程,即 TCP/UDP 用主机 IP 地址和为应用进程分配的端口号来标识应用进程。端口号是 16 位的无符号整数, TCP 的端口号和 UDP 的端口号是两个独立的序列。尽管相互独立,如果 TCP 和 UDP 同时提供某种知名服务,两个协议通常选择相同的端口号。这纯粹是为了使用方便,而不是协议本身的要求。利用端口号,一台主机上多个进程可以同时使用 TCP/UDP 提供的传输服务,并且这种通信是端到端的,它的数据由 IP 传递,但与 IP 数据报的传递路径无关。网络通信中用一个三元组可以在全局唯一标志一个应用进程:(协议,本地地址,本地端口号)。

 

也就是说tcp和udp可以使用相同的端口。

 

可以看到通过(协议,源端口,源ip,目的端口,目的ip)就可以用来完全标识一组网络连接。

 

应用层

 

基于tcp:Telnet FTP SMTP DNS HTTP

基于udp:RIP NTP(网落时间协议)和DNS (DNS也使用TCP)SNMP TFTP


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值