计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

文章目录

1 网络应用

communicate over the Internet using a bi-directional reliable byte stream.
两台电脑通过使用双向可靠的字节流在Internet上互相通信。
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

1.1 www

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

1.2 p2p

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

1.3 skype

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

1.4 总结

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

2 TCP/IP 四层简述

每一层相互独立不干扰,只实现本层需要提供的功能,如在数据链路层的以太网和wifi的链接方式就不一样,但是在网络层不需要知道这其中的细节,只要关注与转发就行了。上层使用下层的服务。
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
应用层:应用程序之间通过发送字节流通信
传输层:向上确定可靠传输TCP还是不可靠的传输UDP,向下将IP数据包重组有序发送
网络层:发送将数据切分多个数据包,尽最大努力的发送,过程不保证数据包的顺序
数据链路层:将数据包从链路发送出去

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

3 网络层(ip service)

3.1 IP协议提供哪些服务

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
总结:互不干扰的报文,经过路由器一跳一跳的尽最大努力的发送,无连接的发送,数据包的到达顺序可能不一致,数据包可能会丢失的,总之就是发送要快,要精简,不要有额外的消耗,让上层来保证可靠传输

3.2 为什么这么设计IP协议

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

3.3 IP数据包内容

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

4 报文的一次传输过程

4.1 数据的传输形式

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

应用层通过read和write将数据转为字节流交给传输层处理,然后传输层将字节流拆分多个segment交给网络层,网络层负责转发,通过多个路由器(多跳)中的转发表中存储的转发地址找到对应服务器获取资源。

4.2 wireshark 抓包【查看数据包信息】

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

  1. 客户机与服务器通过三次握手建立连接
    计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

  2. 客户机发送http请求

  3. 服务器响应,将资源发送给客户机,响应状态200OK状态码

4.3 traceroute【查看数据包的路由情况】

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
客户机发送请求后数据包经过的路由情况,可以看出请求数据包经过20多跳到达了服务器。

5 报文交换(packet switch)

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
不同于circuit switching(电路交换,需要持续建立链接), 在packet switching(封包交换)这项技术中,封包到达switch的时候会查看forwarding table, 根据forwarding table上的规则进行转送。同样地, switch也是拥有buffer的,在多个封包同时到达switch, 并要使用同一条链路进行传送时, 由于switch只能一个一个地转送封包,于是switch会将一些封包放置在buffer之中。

在packet switching中,每个封包都是独立地,因此不需要为每次通讯建立一个特有的私人的频道, 可以更好地利用链路资源,并且由于packet是self-contain的,因此packet可以通过forwarding table到达终点。此外,在packet switching中是不需要维护每个通讯的状态的,这无疑给网络管理减轻了非常多的负担。

报文交换的优点
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

6 分层原则(layering principle)

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

7 封装原则(Principle: Encapsulation)

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
在封包传输时,都会有一个header, 而header后面跟的就是payload, payload又是上一层的数据,这样就实现了封装。举个例子,为了发送一个TCP segment, TCP会组成IP packet的payload, 那么我们可以说IP将这个TCP segment封装了起来。

一个抓包的例子:计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
应用举例VPN:
VPN具体来说就是允许客户与VPN供应商的网络建立安全连接,比如Transport Layer Security (TLS), TLS封包内部的数据是加密的,接着在TLS外面进行封装,如图所示:
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

8 Memory, Byte order, and Packet Formats

8.1 内存

现在64位元的系统而言,memory理论上最大可以达到2^{64} bytes, 然而实际上现今的电脑并没那么大的内存,基本上都是处于2^{30} bytes,也就是gigabytes (GB)这个级别

8.2 字节顺序

计算机的软件如何从内存中读取一组字节?
在计算机中内存地址是16进制的形式,每个十六进制位对应4个二进制位。
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
例如1024通过16进制表示为0x0400, 一个16进制的数字占用2字节 此时0x04和0x00分别占用1 byte. 那么哪个字节是先出现呢?little endian的表示法为: 0x0004; big endian的表示法为: 0x0400. big endian更偏向于人类对于数字的认知。

像intel和AMD通常是采用little endian, ARM processor,大多是使用big endian.

举个例子:
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

8.3 报文格式

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

9 IPv4

9.1 IPv4地址特点

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

9.2 IPv4地址格式、子网掩码(判断是否在同一个网段)

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

9.3 IPv4地址划分

过去的方法:
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
现在的CIDR
现今的IPv4 address structure是采取Classless Inter-Domain Routing (CIDR). 在这个架构中不需要像原始架构那样需要8/16/24 bits作为前缀,任意长度的bits都可以作为前缀,这也使得CIDR比原来的架构更加地具有弹性,同时在CIDR中会有一个数字代表了netmask的长度,这个数字也就是netmask转为二进制之后从最左端开始连续1的个数。例如,一个IP address为171.64.0.0/16,那么意味着IP address 171.64.0.0 – 171.64.255.255这个范围都属于同一个网络,netmask为255.255.0.0,通过netmask区别是否属于同一网络,再通过slash之后的数字来记录host IP的范围,CIDR比原来的structure更加简便。

10 报文路由转发IP地址匹配规则(Longest Prefix Match)

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

11 ARP协议(Address Resolution Protocol )

11.1 概念过程

在同一局域网内在传输封包的时候,由于必须要知晓对方设备的MAC address才能传输,假设我们已经知晓了目的端的IP address了,那么我们该如何知晓目的端所对应的MAC address呢?这个问题的答案就是Address Resolution Protocol (地址解析协议),简写为ARP, 这个协议中的解析之意,我想是将IP address 映射为 MAC address吧. 值得一提的是,IP address和MAC address其实是一一对应的关系,而不是一个IP 对应多个MAC address。
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

ARP 是一个简单的request-reply protocol, host 1一开始会在ARP request里询问谁有IP address X, 并且以broadcast (广播) 的形式发出去,广播的MAC address是ff:ff:ff:ff:ff:ff, 之后IP address 为X的host 2收到了这则讯息会以unicast (单播)的形式reply 这则讯息,由此建立mapping的关系。当然,因为是广播,在同一个局域网中,其它的节点也会依据host 1在ARP request中所写的IP address和MAC address建立起mapping的关系。这种mapping的关系也是有时间限制的,Cisco的设备记录mapping的timeout是4 hours, 不同设备之间的mapping持续时间也不同。当然我们也可以查询自己电脑上的ARP cache, 下面这张图我是使用Mininet模拟出的网络中的host来查看它的ARP cache.

11.2 格式

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP
计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

12 总结(The Internet and IP recap)

计算机网络自定向下 CS144(1)网络应用、报文传输、封装规则、IP

上一篇:源码分析:Java堆的创建


下一篇:Vue的数据代理