章节出错了,点此刷新,刷新后小编会在两分钟内校正章节内容,请稍后再试。
我们来当我们在浏览输入
首http是一个应用层的协议,在这个层的协议,是一种讯规范,也就是因为双方要进行讯,大家要事约定一个规范。
1.连当我们输入这样一个请时,首要立一个socket连,因为socket是过ip和端口立的,所以之前还有一个DNS析过,把
DNS的过是这样的:首我们我们本地的机上在配置网络时都会填写DNS,这样本机就会把这个url发给这个配置的DNS服务,如能够找到相应的url则返其ip,否则该DNS将继续将该析请发送给上级DNS,个DNS可以是一个树状结构,该请将一发送到到得到结。现在已经拥有了目标ip和端口号,这样我们就可以开socket连了。
2.请连成功立后,开始web服务发送请,这个请一般是GETPOST令(POST用于FORM参数的传递)。GET令的格为:GET径/文HTTP/1.0
文出所访问的文,HTTP/1.0出Web浏览使用的HTTP版本。现在可以发送GET令:
GET/mytest/index.htmlHTTP/1.0,
3.应答web服务到这个请,进行处理。从它的文档间中搜索子目录mytest的文index.html。如找到该文,Web服务把该文内容传送给相应的Web浏览。
为了告浏览,,Web服务首传送一些HTTP头息,然后传送体内容(HTTP体息),HTTP头息和HTTP体息之间用一个行分开。
用的HTTP头息有:
①HTTP1.0200OK这是Web服务应答的一行,列出服务在运行的HTTP版本号和应答码。码“200OK“示请成。
②MIME_Version:1.0它示MIME型的版本。
③content_type:型这个头息非要,它示HTTP体息的MIME型。如:content_type:text/html示传送的数是HTML文档。
④content_length:长度值它示HTTP体息的长度(字节)。
4.关闭连:当应答结束后,Web浏览与Web服务必须断开,以其它Web浏览能够与Web服务立连。
下面我们体分析其中的数包在网络中漫游的经历
在网络分层结构中,层之间是严格单依赖的。“服务”是描述层之间关的抽概念,网络中层紧邻上层供的一组操作。下层是服务供,上层是请服务的用户。服务的现形是语(primitive),如统调用库函数。统调用是操作统内核网络应用序高层协议供的服务语。网络中的n层总要n+1层供比n-1层备的服务,否则n层就没有存在的价值。
传输层实现的是“端到端”,引进网间进概念,同时也要决差错控制,量控制,数排序(报文排序),连理等问,为供不同的服务方。传输层的服务过统调用的方供,以socket的方。对于客户端,要立一个socket连,需要调用这样一些函数socket()bind()connect(),然后就可以过send()进行数发送。
现在数包在网络中的穿行过:
应用层
首我们可以到在应用层,当前的需和动作,结合应用层的协议,有我们定发送的数内容,我们把这些数到一个缓冲区内,然后形成了应用层的报文data。
传输层
这些数过传输层发送,比如tcp协议。所以它们会送到传输层处理,在这里报文上了传输头的包头,主要包含端口号,以tcp的种制息,这些息是得到的,因为口中需要定端口。这样就组成了tcp的数传送单segment。tcp是一种端到端的协议,用这些息,比如tcp首部中的序号认序号,这些数字,发送的一方不断的进行发送等待认,发送一个数段后,会开启一个计数,有当到认后会发送下一个,如超过计数时间仍未到认则进行发,在端如到错误数,则将其丢弃,这将导致发送端超时发。过tcp协议,控制了数包的发送序列的产生,不断的调发送序列,实现控和数。
网络层
然后待发送的数段送到网络层,在网络层包,这样封装上了网络层的包头,包头内部含有源目的的ip地址,该层数发送单称为packet。网络层开始负责将这样的数包在网络上传输,如何穿过由,终到达目的地址。在这里,目的ip地址,就需要查找下一跳由的地址。首在本机,要查找本机的由,在windows上运行routeprint就可以到当前由内容,有如下几项:
ActiveRoutesDefaultRoutePersistentRoute.
个查找过是这样的:
(1)目的地址,得到目的网络号,如处在同一个内网,则可以发送。
(2)如不是,则查询由,找到一个由。
(3)如找不到的由,时在由中还会有默认网关,也可称为缺省网关,IP用缺省的网关地址将一个数传送给下一个定的由,所以网关也可能是由,也可能是内网定由传输数的网关。
(4)由到数后,它为远主机网络查询由,若还未找到由,该数包将发送到该由的缺省网关地址。而数包中包含一个大由跳数,如超过这个跳数,就会丢弃数包,这样可以防止无限传递。由到数包后,会查网络层的包裹数,目的ip。所以说它是工作在网络层,传输层的数对它来说则是透的。
如上面这些步骤都没有成功,那该数报就不能传送。如不能传送的数报来自本机,那一般会生成数报的应用序返一个“主机不可达”“网络不可达”的错误。
以windows下主机的由为,由的查找过
======================================================================
ActiveRoutes:
NetworkDestinationNetmaskGatewayInterfaceMetric
0.0.0.00.0.0.0192.168.1.2192.168.1.10110
127.0.0.0255.0.0.0127.0.0.1127.0.0.11
192.168.1.0255.255.255.0192.168.1.101192.168.1.10110
192.168.1.101255.255.255.255127.0.0.1127.0.0.110
192.168.1.255255.255.255.255192.168.1.101192.168.1.10110
224.0.0.0240.0.0.0192.168.1.101192.168.1.10110
255.255.255.255255.255.255.255192.168.1.101192.168.1.1011
DefaultGateway:192.168.1.2
NetworkDestination目的网段
Netmask子网掩码
Gateway下一跳由入口的ip,由过interface和gateway定义一调到下一个由的链,况下,interface和gateway是同一网段的。
Interface到达该目的地的本由的出口ip(对于我们的个人pc来说,由机算机A的网卡,用该网卡的IP地址标识,当然一个pc也可以有多个网卡)。
网关这个概念,主要用于不同子网间的互,当两个子网内主机A,B要进行讯时,首A要将数发送到它的本地网关,然后网关将数发送给B所在的网关,然后网关发送给B。
默认网关,当一个数包的目的网段不在的由记录中,那,的由该把那个数包发送到哪里!缺省由的网关是由的连上的defaultgateway决定的,也就是我们在网络连里配置的那个值。
interface和gateway处在一个子网内,对于由来说,因为可能有不同的interface,当数包到达时,NetworkDestination寻找匹配的条目,如找到,interface则了应当从该由的那个口出去,gateway则了那个子网的网关地址。
一条0.0.0.00.0.0.0192.168.1.2192.168.1.10110
0.0.0.0了缺省由。该由记录的是:当我到一个数包的目的网段不在我的由记录中,我会将该数包过192.168.1.101这个口发送到192.168.1.2这个地址,这个地址是下一个由的一个口,这样这个数包就可以付给下一个由处理,与我无关。该由记录的线质量10。当有多个条目匹配时,会选择有较小Metric值的那个。
三条192.168.1.0255.255.255.0192.168.1.101192.168.1.10110
联网段的由记录:当由到发往联网段的数包时该如何处理,这种况,由记录的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地址,同时将请的ipmac存。这样就得到了目标ip的mac地址。
链层
将mac地址链层控制息加到数包里,形成Frame,Frame在链层协议下,成了相邻的节点间的数传输,成连立,控制传输度,数。
物理层
物理线则负责该数以bit为单从主机传输到下一个目的地。
下一个目的地到数后,从物理层得到数然后经过逐层的包到链层到网络层,然后开始上述的处理,在经网络层链层物理层将数封装好继续传往下一个地址。
在上面的过中,可以到有一个由查询过,而这个由的立则依赖于由算法。也就是说由算法实际上是用来由之间维护由,的数传输过不执行这个算法,查由。这个概念也要,需要理用的由算法。而个tcp协议比较复杂,跟链层的协议有些相似,其中有要的一些机制概念需要认理,比如编号与认,量控制,发机制,发送窗口。
tcp/ip本模型概念
物理层
设备,中继(repeater),集线(hub)。对于这一层来说,从一个端口到数,会转发到所有端口。
链层
协议:SDLC(SynchronousDataLinkControl)HDLC(High-levelDataLinkControl)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:TelnetFTPSMTPDNSHTTP
于udp:RIPNTP(网落时间协议)和DNS(DNS也使用TCP)SNMPTFTP
参考文献:
读懂本机由。
Internet传输层协议
计算机网络谢希仁