【网络原理】TCP/IP协议(续)

这篇具有很好参考价值的文章主要介绍了【网络原理】TCP/IP协议(续)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

🔥网络层重点协议(IP 协议)

一、地址管理

1.如何解决上述地址不够用问题?

2.NAT 机制

2.1 NAPT

2.2 在 NAT 背景下如何通信?

3.IPv6

4.IP地址

4.1 ABCDE类

4.2 子网掩码

4.3 特殊的 IP 地址

二、路由选择

1.路由器

1.1 网关

1.2 路由

🌴数据链路层重点协议

1.以太网

1.1 认识以太网

1.2 以太网帧格式

2.MTU

2.1 认识MTU

2.2 MTU对IP协议的影响

2.3 MTU的值是几?


🌈🌈关于 TCP/IP协议的 应用层和传输层的重点知识,请看博客:【网络原理】TCP/IP协议

🔥网络层重点协议(IP 协议)

IP 协议做的两部分核心工作

1️⃣地址管理

每个网络上的设备,要能分配一个地址(唯一)

2️⃣路由选择

A 给 B 发消息,具体走哪条路线?

一、地址管理

协议头格式如下:

【网络原理】TCP/IP协议(续)

 🙈32位的整数,最多能表示多少个不同的地址呢?42亿9千万


显然上述地址是不够用的,那么应该怎么办?

在这里我们需要记住几个数:

一个字节:  0 ---->255                 -128 ----> +127

两个字节:  0 ----> 65535        -32768 ----> +32767

三个字节:  0 ----> 42亿9千万    -21亿 ----> +21亿

1.如何解决上述地址不够用问题?

1️⃣动态分配 IP 地址

✨设备上网才分配,不上网就不分配;此时就可以省下一大批 ip 地址。但是并没有增加 ip 的数量,只能一定程度的缓解,不能彻底解决问题

2️⃣NAT 机制

把IP地址分成“外网IP”’和“内网IP”,用一个外网IP代替N个内网IP

举个例子:
就好比你买了一个快递,地址写的XXX省XXX县XXX区XXX大学,不用写几号楼,几零几。但是一个大学里有好多人,那怎么确定是谁的包裹,所以我们就可以通过收件人和联系电话再来做进一步的区分。

2.NAT 机制

🌈把所有的 IP 地址分成两大类:

内网IP10.*         172.16.*-172.31.*        192.168.*

外网IP(公网):  剩下的ip

❗❗外网 IP 必须是唯一的;内网 IP 则可以重复出现(尤其是在不同的局域网中)

🔎内网设备如果要访问外网,会给他分配一个外网 IP ,但是这个外网 IP 不是这个设备独占的,而是这个内网中所有的设备都共用一个外网 IP

一个外网 IP 代表一系列的设备

❓❓IP 如何进行工作的

【网络原理】TCP/IP协议(续)

 假设现在有设备A和设备B要同时访问服务器的8080端口:

1):设备A =》路由器 =》 服务器

设备A发给路由器的IP数据报:
源IP 192.168.0.2 源端口:1000
目的IP:1.2.3.4 目的端口:8080

路由器正常是要把这个数据报原封不动的转发,但是此时触发了NAT机制,于是就产生了“移花接木”

路由器把IP数据报中的源IP进行了替换,替换成路由器的外网IP

路由器发给服务器的消息:
源IP:1.2.3.5 源端口:1000
目的IP:1.2.3.4 目的端口:8080

2):设备B =》 路由器 =》 服务器

设备B先给路由器发IP数据报:
源IP:192.168.0.3 源端口:1000
目的IP:1.2.3.4 目的端口:8080

此时路由器发给服务器是同样触发NAT机制,再次“进行替换”

路由器发给服务器的消息:
源IP:1.2.3.5 端口:1001(此时刚才的源IP:1.2.3.5 源端口:1000 已经被用过了,如果使用同样的,那么路由器无法区分出这个请求到底是哪个主机的)需要使用不同的端口
目的IP:1.2.3.4 目的端口:8080

【网络原理】TCP/IP协议(续)

 服务器看见两个请求,但是源端口不一样,所以服务器在返回数据时就可以根据源端口,来分别返回不同的数据。

具体图解:

【网络原理】TCP/IP协议(续)

NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系

2.1 NAPT

        那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机? 这时候 NAPT 来解决这个问题了。使用 IP+port 来建立这个关联关系。

【网络原理】TCP/IP协议(续)

主机 163.221.120.9 的端口号是 80,私网中有 2 个客户端 10.0.0.10 和 10.0.0.11 同时进行通信,并且这 2 个客户端的本地端口都是 1025。此时,仅仅转换 IP 地址为全局地址 202.244.174.37 ,会令转换后的数字完全一致。因此,为了区分这 2 个会话,只要将 10.0.0.11 的端口号转换为 1026 就可以解决问题。NAPT 路由器通过生成转换表,就可以正确地转换地址跟端口的组合,使客户端A、B能同时与服务器之间进行通信。这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项; 在断开连接后,就会删除这个表项


2.2 在 NAT 背景下如何通信?

外网设备 -> 外网设备:不需要任何 NAT ,直接就能通信

内网设备 -> 其他内网设备:不允许

外网设备 -> 内网设备:不允许

内网设备 -> 外网设备:对应的内网设备的路由器,触发 NAT 机制进行 ip 替换,此时就会给这个网络数据报的源 ip 替换成路由器自己的 ip,此时一个外网 IP 就能代表一大批内网中的设备

当前,动态分配 + NAT 来解决 IP 不够用的问题的;但是并没有让 IP 地址变多,只是提高利用率的方式来解决问题;要想从根本上解决问题,需要提供更多的 IP 地址,则会有第三种解决方案:IPv6


3.IPv6

之前所学的 IP 协议叫做 IPv4使用4个字节,32位来表示 ip 地址

IPv6:是更新一些的 IP 协议,使用16个字节,128位来表示 ip 地址

2^128 = 2^32 * 2^32 * 2^32 * 2^32;这个数字巨大无比,相当于给地球上的每一粒沙子分配一个 ip 地址都是够用的

4.IP地址

概念IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

作用 :IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地 址,以此来屏蔽物理地址的差异。
 
格式 IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如: 01100100.00000100.00000101.0000011

 文章来源地址https://www.toymoban.com/news/detail-417862.html

组成:IP地址分为两个部分,网络号主机号

网络号标识网段(表示一个局域网),保证相互连接的两个网段具有不同的标识;

主机号标识主机(标识了一个局域网的主机),同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;

【网络原理】TCP/IP协议(续)

 对于网络号主机号的划分,主要有两种分类方式:

4.1 ABCDE类

1️⃣IP 地址分类(ABCDE)简单了解

 

 

 

【网络原理】TCP/IP协议(续)

【网络原理】TCP/IP协议(续)

4.2 子网掩码

格式:子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1 的数目等于网络位的长度右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。

【网络原理】TCP/IP协议(续)

计算方式:

IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得 到的结果就是网络号

子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号

4.3 特殊的 IP 地址

假定子网掩码是 255.255.255.0

1️⃣主机号为 0 的 ip       

例如:192.168.0.0 就是网络号,局域网里不应该存在某个主机,主机号是0 

2️⃣主机号全为1             

例如:192.168.0.255 广播地址——将IP地址中的主机地址全部设为1,就成为了广播地址。往这个地址上发送 udp 数据报,此时这个数据报就会被转发给整个局域网中的所有主机(TCP 不支持广播)

 3️⃣IP 为 172 开头的:127.*称为环回ip

127.0.0.1是最常用的

环回 ip 对应特殊的虚拟网卡 IO,通过环回 ip 传输的数据,走这个虚拟网卡(这个过程没有 IO 操作,纯内存操作),要比一般的这种普通 ip 的数据传输要快

4️⃣主机号为1

192.168.0.1  一般作为“网关ip”;网关即局域网的出入口

二、路由选择

描述的是:从 A 到 B 之间,具体线路怎么走(A 和 B 之间存在很多种不同的路线,具体走哪条路??路由选择要做的事情就是这个)

1.路由器

路由器主要有两个作用:

1.1 网关

路由器作为网关,可以划分公网和局域网,某些路由器还可以将局域网划分为多个子网(不同网段)

1.2 路由

所谓路由,即在复杂的网络结构中,找出一条通往终点的路线;网络通信(网络数据传输),路由器中的路由功能,就类似于规划路线,往哪个方向行进能更快到达目的地。

【网络原理】TCP/IP协议(续)

IP 数据报 在进行网络转发的过程中,就是一个“逐渐问路”的过程,每个路由器只能认识周围的情况,很可能问的目标并不知道(目的 ip 在路由表中,没有匹配结果),此时就会走路由器给指定的一条默认的路径(路由表中的“下一条表项”,就会把数据报指引更上一级的路由器,越上级的路由器就见多识广) 

🌴数据链路层重点协议

1.以太网

1.1 认识以太网

"以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了
一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等;
例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等;
以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

1.2 以太网帧格式

【网络原理】TCP/IP协议(续)

2.MTU

2.1 认识MTU

把上述数据链路层数据帧,最大荷载长度称为 MTU ;如果承载的数据长度超过MTU,就会在 IP 层进行分包,使每个分出来的结果都能在 MTU 之内

MTU相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制。

【网络原理】TCP/IP协议(续)

以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
不同的数据链路层标准的MTU是不同的;

2.2 MTUIP协议的影响

由于数据链路层MTU的限制,对于较大的IP数据包要进行分包

【网络原理】TCP/IP协议(续)

1.将较大的IP包分成多个小包,并给每个小包打上标签;

2.每个小包IP协议头的 16位标识(id) 都是相同的;
3.每个小包的IP协议头的3位标志字段中,第2位置为0,表示允许分片,第3位来表示结束标记(当前是否是最后一个小包,是的话置为1,否则置为0);
4.到达对端时再将这些小包,会按顺序重组,拼装到一起返回给传输层;
5.一旦这些小包中任意一个小包丢失,接收端的重组就会失败。但是IP层不会负责重新传输数据;

虽然 IP 能拆包,仍然不能改变 UDP 最大长度是 64K 这样的现实(由于拆出的这些 IP 数据报中只有一份 UDP 首部,这个首部里就能够填写 UDP 长度的地方,页还是只有 2 个字节。则64K (即65535) 这个限制还是存在的)

2.3 MTU的值是几?

🙈如果面试中被问到,MTU的值是几?


🙉千万不要回答 1500!!!因为不同的数据链路层协议,MTU 不一样,只有以太网才是1500!!

 

 

 

 

 

到了这里,关于【网络原理】TCP/IP协议(续)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaEE初阶】网络原理|认识协议|协议分层|TCP/IP模型|封装和分用

    目录 一、认识协议 1.概念 2.作用(为什么需要协议?) 二、协议分层 1.为什么需要⽹络协议的分层? 2. 协议分层是什么 3.分层带来的好处 三、TCP/IP五层(或四层)模型 (1)物理层 (2)数据链路层 (3)网络层 (4)传输层 (5)应用层 四、封装和分用(协议的层和层之间

    2024年04月23日
    浏览(35)
  • 【netty系列-01】深入理解网络通信基本原理和tcp/ip协议

    Netty系列整体栏目 内容 链接地址 【一】深入理解网络通信基本原理和tcp/ip协议 https://zhenghuisheng.blog.csdn.net/article/details/136359640 【二】深入理解Socket本质和BIO https://zhenghuisheng.blog.csdn.net/article/details/136549478 在最初的网络中,是借鉴于这个OSI七层网络模型,而在实际开发应用中

    2024年03月17日
    浏览(54)
  • Linux内核--网络协议栈(五)TCP IP栈的实现原理与具体过程

    一、引言 二、Linux内核的结构 三、Linux网络子系统 四、TCP/IP协议栈 ------4.1、网络架构 ------4.2、协议无关接口 ------4.3、套接口缓存 ------4.4、重要的数据结构 五、网络信息处理流程 ------5.1、硬中断处理 ------5.2、ksoftirqd内核线程处理软中断 ------5.3、网络协议栈处理 ------5.4、

    2024年01月21日
    浏览(59)
  • 【网络协议】TCP/IP 协议

    1、TCP/IP 模型 TCP/IP 协议模型,包含了一系列构成互联网基础的网络协议,是 Internet 的核心协议。 基于 TCP/IP 协议栈可分为四层或五层,转换为 OSI 参考模型,可以分为七层,分别如下图所示: 通常我们所说的都是基于 TCP/TP 五层模型。 2、TCP/IP 协议栈每一层功能 应用层:H

    2024年02月12日
    浏览(43)
  • 网络编程——TCP/IP协议族(IP协议、TCP协议和UDP协议……)

    1、IP协议简介 IP协议又称 网际协议 特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议,是网络层中的协议。 2、特点 不可靠 :它不能保证IP数据包能成功地到达它的目的地,仅提供尽力而为的传输服务 无连接 :IP 并不

    2024年02月13日
    浏览(54)
  • 一文了解tcp/ip协议的运行原理

    接触代理ip的人都了解https/sock5等ip协议,那么TCP/IP 协议又是什么? TCP/IP 协议实际上是一系列网络通信协议的一个统称,他负责具体的数据传输工作,核心的两个协议包括TCP以及IP,还有其他 UDP、ICMP、ARP 等,构成一个网络协议栈。 网络通信可以将其划分为四个层次去解释:

    2024年02月10日
    浏览(36)
  • 【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - 网际协议IP

    这篇文章主要介绍TCP/IP协议的网际层,上一篇文章介绍了数据链路层,数据链路层的主要作用是 在互连同一种数据链路的节点之间进行包传递 。而网际层的主要作用是 实现终端节点(即使不在同一网络)的通信 。 网际层 有时也称 网络层 ,但由于网际层的作用中包含了“实现

    2024年02月06日
    浏览(48)
  • Java中网络的基本介绍。网络通信,网络,ip地址,域名,端口,网络通信协议,TCP/IP传输过程,网络通信协议模型,TCP协议,UDP协议

    - 网络通信 概念:网络通信是指 通过计算机网络进行信息传输的过程 ,包括数据传输、语音通话、视频会议等。在网络通信中,数据被分成一系列的数据包,并通过网络传输到目的地。在数据传输过程中,需要确保数据的完整性、准确性和安全性。常见的网络通信协议有T

    2024年02月10日
    浏览(59)
  • TCP/IP协议工作原理与工作流程

    使用OSI模型来描述一个网络中的各个协议层,如下: TCP/IP协议,英文全称Transmission Control Protocol/Internet Protocol,包含了一系列构成互联网基础的网络协议,是Internet的核心协议。TCP/IP协议是一个协议簇,包含了应用协议、传输协议、网际互联协议和路由控制协议。如下图: 应

    2024年04月25日
    浏览(40)
  • 网路原理-传输层UDP,TCP/IP(确认应答,超时重传,连接管理,三次握手,四次挥手,状态转换,流量控制,滑动窗口,拥塞控制,延时应答,捎带应答,异常情况,面向字节流)-网络层(IP协议,地址管理)

    本节重点 • 理解传输层的作⽤,深⼊理解TCP的各项特性和机制 • 对整个TCP/IP协议有系统的理解 • 对TCP/IP协议体系下的其他重要协议和技术有⼀定的了解 我们之前编写完了基本的 java socket ,要知道,我们之前所写的所有代码都在应⽤层,都是为了 完成某项业务,如翻译等。

    2024年04月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包