ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-11-23 00:03:02  阅读:186  来源: 互联网

标签:封包 IP CS144 packet IPv4 address 数据包 报文


文章目录

1 网络应用

communicate over the Internet using a bi-directional reliable byte stream.
两台电脑通过使用双向可靠的字节流在Internet上互相通信。
在这里插入图片描述

1.1 www

在这里插入图片描述

1.2 p2p

在这里插入图片描述

1.3 skype

在这里插入图片描述

1.4 总结

在这里插入图片描述

2 TCP/IP 四层简述

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

在这里插入图片描述

3 网络层(ip service)

3.1 IP协议提供哪些服务

在这里插入图片描述

在这里插入图片描述
总结:互不干扰的报文,经过路由器一跳一跳的尽最大努力的发送,无连接的发送,数据包的到达顺序可能不一致,数据包可能会丢失的,总之就是发送要快,要精简,不要有额外的消耗,让上层来保证可靠传输

3.2 为什么这么设计IP协议

在这里插入图片描述

3.3 IP数据包内容

在这里插入图片描述

4 报文的一次传输过程

4.1 数据的传输形式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述

  1. 客户机与服务器通过三次握手建立连接
    在这里插入图片描述

  2. 客户机发送http请求

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

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

在这里插入图片描述
客户机发送请求后数据包经过的路由情况,可以看出请求数据包经过20多跳到达了服务器。

5 报文交换(packet switch)

在这里插入图片描述
不同于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中是不需要维护每个通讯的状态的,这无疑给网络管理减轻了非常多的负担。

报文交换的优点
在这里插入图片描述

6 分层原则(layering principle)

在这里插入图片描述

7 封装原则(Principle: Encapsulation)

在这里插入图片描述
在封包传输时,都会有一个header, 而header后面跟的就是payload, payload又是上一层的数据,这样就实现了封装。举个例子,为了发送一个TCP segment, TCP会组成IP packet的payload, 那么我们可以说IP将这个TCP segment封装了起来。

一个抓包的例子:在这里插入图片描述
应用举例VPN:
VPN具体来说就是允许客户与VPN供应商的网络建立安全连接,比如Transport Layer Security (TLS), TLS封包内部的数据是加密的,接着在TLS外面进行封装,如图所示:
在这里插入图片描述

8 Memory, Byte order, and Packet Formats

8.1 内存

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

8.2 字节顺序

计算机的软件如何从内存中读取一组字节?
在计算机中内存地址是16进制的形式,每个十六进制位对应4个二进制位。
在这里插入图片描述
例如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.

举个例子:
在这里插入图片描述

8.3 报文格式

在这里插入图片描述

9 IPv4

9.1 IPv4地址特点

在这里插入图片描述

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

在这里插入图片描述

9.3 IPv4地址划分

过去的方法:
在这里插入图片描述
现在的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)

在这里插入图片描述

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。
在这里插入图片描述

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 格式

在这里插入图片描述
在这里插入图片描述

12 总结(The Internet and IP recap)

在这里插入图片描述

标签:封包,IP,CS144,packet,IPv4,address,数据包,报文
来源: https://blog.csdn.net/u_hcy2000/article/details/121430804

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有