【考试】计算机网络

目录

1、IP地址[1]

2、子网掩码[1]

3、计算机网络的各层协议知识总结[2]

4、以太网数据帧格式

5、IP格式

6、TCP报文格式

7、UDP数据段格式

8、总结[5]

10、IP地址分类[6]

11、各层数据单元的名称

12、TCP协议与UDP协议[7]

13、各层设备如何协调工作


1、IP地址[1]

        IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”。

        或者说 IP地址 是每个人的名字,是可以修改的;MAC 地址是每个人的身份证号,从出生就已经确定了,是不可修改的。每台计算机的 MAC地址 是由物理网卡确定的。

        因为在网络层需要的是 IP地址,而在 数据链路层需要 MAC 地址,所以有了 ARP 协议。ARP 协议就是将 IP地址 转化为它所对应的 MAC地址。

2、子网掩码[1]

  • 子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
  • 子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

例题:某单位拥有合法IP地址:170.1.0.0,若使用的子网掩码是:255.255.255.224,则该单位内部有多少子网?每个子网有多少主机?

解:一类地址:1-127,二类地址:128-191,所以这个IP地址是二类地址。故 170.1.0.0,红色部分为网络号,蓝色部分为主机号。

        又因为子网掩码(区分网络号和主机号)为255.255.255.1110 0000,即红色部分为网络号,黑色为主机号,因为前16位为网络号,所以255.111为子网号

        这个题目就清楚了,255.255.255.1110 0000,前16位为网络号,中间11位为子网号,后面5位为主机号。

3、计算机网络的各层协议知识总结[2]

  • 物理层

非对称数字用户线(ADSL)

  • 数据链路层

1、PPP协议 --点对点协议

2、CSMA/CD --载波监听多点接入/碰撞检测协议

3、时隙ALOHA协议(随机访问或竞争发送协议)

4、SDLC同步数据链路控制

5、HDLC(High level Data Link Control)高级数据链路层控制协议

  • 网络层

1、网际协议IP

2、地址解析协议ARP(Address Resolution Protocol)

3、网际控制报文协议ICMP

4、路由选择协议:

        内部网关协议IGP        

                RIP(Routing Information Protocol)基于距离向量 +

                OSPF(Open Shortest Path First) 开放最短路径优先,链路状态协议 +

        外部网关协议BGP(Border Gateway Protocol)

5、网际组管理协议(IGMP)

6、网络地址转换NAT(Network Address Translation)

7、Ethernet即以太网

  • 传输层

1、用户数据报协议UDP(User Datagram Protocol)

2、传输控制协议TCP(Transmission Control Protocol)

  • 应用层

1、域名系统DNS(Domain Name System)
2、文本传送协议FTP(File Transfer Protocol)
3、简单文件传送协议TFTP
4、远程终端协议TELNET
5、超文本传送协议HTTP
6、简单邮件传送协议SMTP
7、邮件读取协议POP3和IMAP
8、动态主机配置协议DHCP
9、简单网络管理协议SNMP

4、以太网数据帧格式

字段含义
前同步码用来使接收端的适配器在接收 MAC 帧时能够迅速调整时钟频率,使它和发送端的频率相同。前同步码为 7 个字节,1 和 0 交替。
帧开始定界符帧的起始符,为 1 个字节。前 6 位 1 和 0 交替,最后的两个连续的 1 表示告诉接收端适配器:“帧信息要来了,准备接收”。
目的地址接收帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。作用是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同,就会进一步处理;如果不同,则直接丢弃。
源地址发送帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。
类型上层协议的类型。由于上层协议众多,所以在处理数据的时候必须设置该字段,标识数据交付哪个协议处理。例如,字段为 0x0800 时,表示将数据交付给 IP 协议。
数据也称为效载荷,表示交付给上层的数据。以太网帧数据长度最小为 46 字节,最大为 1500 字节。如果不足 46 字节时,会填充到最小长度。最大值也叫最大传输单元(MTU)。

在 Linux 中,使用 ifconfig 命令可以查看该值,通常为 1500。
帧检验序列 FCS

检测该帧是否出现差错,占 4 个字节(32 比特)。发送方计算帧的循环冗余码校验(CRC)值,把这个值写到帧里。接收方计算机重新计算 CRC,与 FCS 字段的值进行比较。如果两个值不相同,则表示传输过程中发生了数据丢失或改变。这时,就需要重新传输这一帧。

  • 整个数据帧最大是多少: 6+6+2+1500+4 =1518个字节
  • 整个数据帧最小是多少:6+6+2+46+4=64个字节

5、IP格式

  1. Version:版本,4位,用来表明IP协议实现的版本号,当前一般为IPv4,即0100,IPv6的为0110。这个字段确保可能运行不同IP版本的的设备之间的兼容性
  2. 首部长度占4位,指IP协议的首部长度,最大数值=15个单位=15×4=60字节,因此首部长度字段的大小范围:5~15(二进制表示:0101~1111)。单位是字(4个字节)
  3. 区分服务:服务类型,8位,用于携带提供服务质量特征信息的字段,服务类型字段声明了数据报被网络系统传输时可以被怎样处理。其中前3比特为优先权子字段(Precedence,现已被忽略,各种终端都不采用)。第8比特保留未用。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这4比特的服务类型中只能置其中1比特为1。可以全为0,若全为0则表示一般服务。大多数情况下该TOS会被忽略
  4. 总长度占16位,指首部和数据之和的长度(单位为字节),数据报的最大长度=2^16-1=65535字节
  5. 标识:16位,用来唯一地标识主机发送的每一份数据报。IP软件会在存储器中维持一个计数器,每产生一个数据段,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。如数据报由于超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后各数据报片最后能正确的重装成为原来的数据报
  6. 标志占3位,只有后两位有意义!!
    1. 最低位:MF(more fragment),置为0时表示该数据段为最后一个数据段,置为1时表示后面还有被分割分段
    2. 中间位:DF(don't fragment),置为0时表示可以分段,置为1是不能被分段
  7. 段偏移量:13位,指出较长的分组在分段后,某段在原分组的相对位置。也就是说相对用户字段的起点,该片从何处开始。段偏移以8个字节(有3位被flags占据)为偏移单位。这就是,每个分片的长度一定是8字节(64位)的整数倍

  8. 生存期(TTL):8位,用来设置数据报最多可以经过的路由器数。由发送数据的源主机设置,通常为32、64、128等。每经过一个路由器,其值减1,直到0时该数据报被丢弃
  9. 协议(Protcol)8位,指明ip数据字段中的数据采用上层什么协议封装的。常见的有ICMP(1)、IGMP(2)、TCP(6)、UDP(17)
  10. 头部校验和:16位,填充根据IP头部计算得到的校验和码。计算方法是:对头部中每个16比特进行二进制反码求和,但不和涉及头部后的数据字段
  11. 源ip地址:32位
  12. 目的ip地址:32位
  13. 选项(Option):n*32位。用来定义一些可选项:如记录路径、时间戳等。但这些选项很少被使用,同时并不是所有主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求。根据IHL可以得到option的长度
  14. 数据(Data):不定长度,但受限于数据报的最大长度(65535)。这是在数据报中要传输的数据。它是一个完整的较高层报文或报文的一个分片

  

6、TCP报文格式

计算机网络 之 TCP和UDP的端口号解析 - scutwang - 博客园前言:今天了解一下tcp和udp报文的端口。发现一直以来都只是知道端口用于区分同一IP的服务器的不同服务,已经端口的大小。在查找traceroute的资料的时候,才了解到一些之前没注意到的东西。(一)https://www.cnblogs.com/scutwang/p/3958128.html

1、源端口和目的端口字段

  • TCP源端口(Source Port):源计算机上的应用程序的端口号,占 16 位,范围1-65535。
  • TCP目的端口(Destination Port):目标计算机的应用程序端口号,占 16 位。
  • 其长度都是16个bit,所以端口号范围是0到(2^16-1),即 0到 65535。其中0到1023是IANA规定的系统端口,即系统保留窗口。
  • 常用的端口号:
    • 21:FTP服务所开放的端口,用于上传、下载文件
    • 22:SSH端口,用于通过命令行模式远程连接Linux服务器或vps
    • 23:Telnet端口,用于Telnet远程登陆服务器。
    • 25:SMTP服务所开放的端口,用于发送邮件。
    • 80:HTTP用于HTTP服务提供访问功能,例如,IIS、Apache、Nginx 等服务。您可以参阅、检查、TCP 80端口是否正常工作,排查80端口故障。
    • 110:POP3用于POP3 协议,POP3 是电子邮件收发的协议。
    • 143:IMAP用于IMAP(Internet Message Access Protocol)协议,IMAP 是用于电子邮件的接收的协议。
    • 443:HTTPS 用于HTTPS服务提供访问功能。HTTPS 是一种能提供加密和通过安全端口传输的一种协议。
    • 1433:SQL Server SQL Server的TCP 端口,用于供SQL Server对外提供服务。
    • 1434:SQL Server SQL Server的UDP端口,用于返回SQL Server使用了哪个 TCP/IP 端口。
    • 1521:Oracle通信端口,服务器上部署了Oracle SQL需要放行的端口。
    • 3306:MySQL数据库对外提供服务的端口。
    • 3389:Windows Server Remote Desktop Services Windows Server Remote Desktop Services(远程桌面服务)端口,可以通过这个端口远程连接服务器
    • 8080:代理端口,同80端口一样,8080 端口常用于WWW代理服务,实现网页浏览。如果用了8080端口,访问网站或使用代理服务器时,需要在 IP 地址后面加上 :8080。安装Apache Tomcat服务后,默认服务端口为8080。
    • 137、138、139 NetBIOS协议137、138 为UDP端口,通过网上邻居传输文件时使用的端口。139通过这个端口进入的连接试图获得 NetBIOS/SMB 服务。NetBIOS协议常被用于Windows文件、打印机共享和Samba。

2、序列号字段(Sequence Number)

CP序列号(Sequence Number):占 32 位。它表示本报文段所发送数据的第一个字节的编号。在 TCP 连接中,所传送的字节流的每一个字节都会按顺序编号。当SYN标记不为1时,这是当前数据分段第一个字母的序列号;如果SYN的值是1时,这个字段的值就是初始序列值(ISN),用于对序列号进行同步。这时,第一个字节的序列号比这个字段的值大1,也就是ISN加1。

3、确认号字段(Acknowledgement Number)

TCP 确认号(Acknowledgment Number,ACK Number):占 32 位。它表示接收方期望收到发送方下一个报文段的第一个字节数据的编号其值是接收计算机即将接收到的下一个序列号,也就是下一个接收到的字节的序列号加1。

4、数据偏移字段

TCP 首部长度(Header Length):数据偏移是指数据段中的“数据”部分起始处距离 TCP 数据段起始处的字节偏移量,占 4 位。其实这里的“数据偏移”也是在确定 TCP 数据段头部分的长度,告诉接收端的应用程序,数据从何处开始。

5、保留字段

保留(Reserved):占 4 位。为 TCP 将来的发展预留空间,目前必须全部为 0。

6、标志位字段

  • CWR(Congestion Window Reduce):拥塞窗口减少标志,用来表明它接收到了设置 ECE 标志的 TCP 包。并且,发送方收到消息之后,通过减小发送窗口的大小来降低发送速率。
    • 理解:告知发送方,我方拥堵,你降低一下窗口发送速率

  • ECE(ECN Echo):用来在 TCP 三次握手时表明一个 TCP 端是具备 ECN 功能的。在数据传输过程中,它也用来表明接收到的 TCP 包的 IP 头部的 ECN 被设置为 11,即网络线路拥堵。
    • 理解:数据传输过程中,TCP包头部的ECN字段设置为11,表示网络线路拥堵

  • URG(Urgent):表示本报文段中发送的数据是否包含紧急数据。URG=1 时表示有紧急数据。当 URG=1 时,后面的紧急指针字段才有效。
    • 理解:标记是否有紧急数据,URG=1后面的紧急指针字段(Urgent Pointer)才有效

  • ACK:表示前面的确认号字段是否有效。ACK=1 时表示有效。只有当 ACK=1 时,前面的确认号字段才有效。TCP 规定,连接建立后,ACK 必须为 1。
    • 理解:ACK 必须为 1,表示TCP 确认号(Acknowledgment Number,ACK Number)有效

  • PSH(Push):告诉对方收到该报文段后是否立即把数据推送给上层。如果值为 1,表示应当立即把数据提交给上层,而不是缓存起来。
    • 理解:告知接收方是否马上将数据提交给上层,PSH=1,马上提交不是缓存起来

  • RST:表示是否重置连接。如果 RST=1,说明 TCP 连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。
    • 理解:是否释放连接,重新建立连接, RST=1需要重新连接

  • SYN:在建立连接时使用,用来同步序号。
    • 当 SYN=1,ACK=0 时,表示这是一个请求建立连接的报文段;
    • 当 SYN=1,ACK=1 时,表示对方同意建立连接。
    • 当SYN=1 时,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中 SYN 才为 1。
  • FIN:标记数据是否发送完毕。如果 FIN=1,表示数据已经发送完成,可以释放连接

7、窗口大小字段

窗口大小(Window Size):占 16 位。它表示从 Ack Number 开始还可以接收多少字节的数据量,也表示当前接收端的接收窗口还有多少剩余空间。该字段可以用于 TCP 的流量控制。

8、TCP 校验和字段

校验位(TCP Checksum):占 16 位。它用于确认传输的数据是否有损坏。发送端基于数据内容校验生成一个数值,接收端根据接收的数据校验生成一个值。两个值必须相同,才能证明数据是有效的。如果两个值不同,则丢掉这个数据包。Checksum 是根据伪头 + TCP 头 + TCP 数据三部分进行计算的。

  • 理解:校验传输过程中数据是否损坏,丢包等

9、紧急指针字段

紧急指针(Urgent Pointer):仅当前面的 URG 控制位为 1 时才有意义。它指出本数据段中为紧急数据的字节数,占 16 位。当所有紧急数据处理完后,TCP 就会告诉应用程序恢复到正常操作。即使当前窗口大小为 0,也是可以发送紧急数据的,因为紧急数据无须缓存。

  • 理解:URG 控制位为 1 ,表示紧急数据字节数,此时会优先处理紧急数据,窗口大小为 0,也是可以发送紧急数据的,因为紧急数据无须缓存。

10、可选项字段

选项(Option):长度不定,但长度必须是 32bits 的整数倍。

7、UDP数据段格式

8、总结[5]

 

10、IP地址分类[6]

 

11、各层数据单元的名称

物理层bite(比特)
数据链路层frame(帧)
网络层packet(包、分组)
传输层

TCP:数据段(data segment)

UDP:数据包(datagram)

12、TCP协议与UDP协议[7]

TCP协议是一个面向连接的、可靠的传输协议,它提供一种可靠的字节流,能保证数据完整、无损并且按顺序到达。TCP尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载。另外,TCP试图将数据按照规定的顺序发送。

UDP协议是一个无连接的数据报协议,是一个“尽力传递”和“不可靠”协议,不会对数据包是否已经到达目的地进行检查,并且不保证数据包按顺序到达。

总体来说,TCP协议传输效率低,但可靠性强;UDP协议传输效率高,但可靠性略低,适用于传输可靠性要求不高、体量小的数据(比如QQ聊天数据)。
 

13、各层设备如何协调工作

[7] TCP协议详解 (史上最全)https://blog.csdn.net/crazymakercircle/article/details/114527369?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166893391116800184170159%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166893391116800184170159&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-114527369-null-null.142%5Ev65%5Econtrol,201%5Ev3%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&utm_term=TCP%E5%8D%8F%E8%AE%AE&spm=1018.2226.3001.4187

有动画,讲得非常好,对于0基础十分友好。

14、TCP-三次握手

例题1:

解析:代码的结构应该分为这种:

        整个数据是以太网数据帧,黄色部分是 以太网的 目的地址、源地址、类型。绿色部分为IP数据报,具体格式如上图所示。最后的红色部分是TCP。 

(1)以太网的目的地址:2cf05d34724bH

(2)IEEE802.3在 12 字节的地址后面是 2 字节的长度,而以太网数据帧的是 2 字节的类型值,可以通过这个地方区分是IEEE802.3还是以太网数据帧(因为IEEE802.3的长度值和以太网的类型值没有相同的)。

        在上图中第三个黄色部分的数据:08 00H代表的是类型或者长度。根据规则:如果数值>06 00H,那么它是以太网类型,数据表示类型;如果数据<06 00H,那么它是IEEE802.3,表示的是长度。

(3)“e6 52 40 00” 数据中的 4H 代表的是 标志位。4H = 0100,第一位0空闲,第二位1表示DF,第三位0表示MF,所以DF=1,MF=0.则不允许分片。

(4)80H

(5)00 00H

(6)ca c1 3c f6

(7)[0,2^{16}-1],即0到65535

(8)

  • 80 06 00 00H里面的 06 代表协议,TCP:6,UDP:17,所以本题是TCP协议
  • 10H=0001 0000,代表标志字段,ACK=1,SYN= 0
  • 15H= 21,是fcp,用于上传、下载文件

例题2:

解:

(1)目的网络:180.25.0001 0101.0        192.25.121.1010 0001

        子网掩码:255.255.1111 1000.0        255.255.255.1100 0000

(2)略

(3)子网3个加上全0+全1=5个,需要3位数,则前3位子网号,后5位主机号

参考文献

[1] 子网掩码详解

[2] 计算机网络的各层协议知识总结

[3] 计算机网络中每一层的协议总结

[4] TCP报文格式解析

[5] 以太网数据帧详细解析 逐字节分析

[6] IP地址的分类

[7] TCP协议详解 (史上最全)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值