计算机网络通关学习(二)

news/2024/9/22 14:06:51/

TCP/IP

OSI七层模型,注意TCP/IP为协议簇,即TCP/IP并不单单指TCP、IP两个协议,其也包括了ARP,RARP,ICMP,SNMP,DNS等等一系列协议。

注:路由器仅有三层。

分类

网络中传输方式:

  • 面向有连接型:在发送数据前,需要在收发主机之间连接一条通信线路。
  • 面向无连接型:不要求建立和断开连接。发送端可于任何时候自由发送数据。

接收端数量分类:

  • 单播: 1对1
  • 多播:与广播类似,将消息发送给多个主机,不同之处在于多播要限定某一组主机作为接收端
  • 广播:将消息从一台主机发送给与之相连的所有其他主机
  • 任播:在特定多台主机中任选一台作为接收端

  TCP/IP

数据链路层

数据链路层的协议定义了通过通信媒介互联设备之间的传输规范。(双绞电缆,同轴电缆,光纤...)

这里涉及到了一个网络拓扑的知识,网络拓扑分为三类:总线型,星型,混合型

IP

位于OSI网络

  • 主机:配置有IP地址,但不能进行路由控制的设备
  • 节点:主机与路由器统称

IP分为三大作用模块:

  1. IP寻址
  2. 路由(最终节点为止的转发)
  3. IP分包与组包

路由控制表:

为了将数据包发送给目标主机,所有主机都维护了一张路由表控制表。该表记录IP数据在下一步应该发给哪个路由器。

数据链路的抽象化:

IP是实现多个数据链路之间通信的协议。数据链路根据种类不同各有各的特点,针对这些不同的数据链路的相异性,进行抽象化也是IP重要的作用之一。

IP是属于面向无连接型:

  • 简化
  • 提速

IP地址的基础知识

IPv4由32位整数来表示。TCP/IP 要求将这样的一个地址分配给每一个参与通信的主机。

IP地址由网络地址主机地址两部分标识组成。

IP地址分类存在新旧两种方式,第一种就是分ABCD类,第二种采用子网掩码标识。第二种方式兼容了第一种方式。

第一种分类方式:
  • A类:首位以“0”开始,从1~8位是其网络地址。(即: 0.0.0.0 ~ 127.0.0.0) A类后24位相当于主机标识,因此一个网段可以容纳 2^{24}-2 (1677726 减去一个全1广播地址,一个全0表示对应网络或IP地址不可获知)
  • B类:前两位为“10”的地址。从1~16位都是网络标识。(128.0.0.0 ~ 191.255.0.0) B类后16位相当于主机标识。因此一个网段内可容纳的主机数目位2^{16}-2
  • C类:前三位为“110”的地址。从1~24位都是网络标识。(192.0.0.0 ~ 223.255.255.0) C类后8位相当于主机标识。因此一个网段内可容纳的主机数目位2^{8}-2
  • D类:前三位为“1110”的地址。从1~24位都是网络标识。(224.0.0.0~ 239.255.255.255) D类只有网络地址,没有主机地址,多被用于多播。
第二种分类方式:  

子网掩码:将原来ABCD可u分级中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。

ip地址与子网掩码取与可以得到网络地址,网络地址减二就得到了主机地址范围。

IP分割与在构成处理

不同数据链路的MTU都是不同的,所以在传输过程中我们需要进行IP报文的分片与重组。任意主机都有必要对IP分片进行响应的处理,分片往往在网络上遇到比较大的报文无法一下子发出时就会进行处理。(路由器负责分片,目的主机负责重组)

路径MTU的发现

  • 目的:为了减少路由器的负担
  • 方法:取发送端与主机端间需要分片时最大MTU然后发送主机端按照该大小发送分片报文

DNS:

  • 一个可以有效管理主机名和IP地址之间对应关系的系统。(类似于分布式数据库)

ARP:

  • 是一种解决地址问题的协议,以目标地址的IP地址位线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。
  • 工作机制:借助ARP请求与响应两种类型包确定MAC地址,即发包询问。
  • RARP:从MAC地址定位IP地址的一种协议

ICMP:

  • 确认网络是否正常工作
  • 遇到异常对进行问题进行诊断

DCHP:

  • 为了实现自动设置IP地址,统一管理IP地址分配。有了DHCP计算机只要连接到了网络就可以进行TCP/IP通信

NAT:用于本地网络中使用私有地址,而在连接互联网时使用全局IP地址的技术

TCP于UDP

端口号的定义:用来识别同一台计算机中进行通信的不同程序,故而也被称为程序地址。

DNS 53, HTTP 80, HTTPS 443

UDP不提供复杂的控制机制,利用IP提供的面向无连接的通信服务。

TCP通过检验和(类似于一个标记,接收方通过校验这个标志位来判断数据是否被损坏),序列号,确认应答(ACK),重发控制(超时重传),连接管理(三次握手,四次挥手),窗口控制来来实现可靠性传输。

同时还有部分TCP持久连接,管线化等知识就不过多赘述。


http://www.ppmy.cn/news/1528846.html

相关文章

【Unity3D小技巧】Unity3D中使用EventTrigger对3D物体的响应

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 1-1、EventTrigger简介 EventTrigger是Unity中用于处理UI事件的一个组件。它允许我们为UI元…

数据中台系统产品原型RP原型Axure高保真交互原型 源文件分享

在数字化时代,数据已经成为企业最宝贵的资产之一。为了更好地管理和利用这些数据,这边为大家整理了一套数据中台Axure高保真原型。这套原型致力于为企业提供全方位的数据服务,助力企业实现数据驱动的创新发展。 下载及预览地址:h…

Redis数据结构之哈希表

这里的哈希表说的是value的类型是哈希表 一.相关命令 1.hset key field value 一次可以设置多个 返回值是设置成功的个数 注意,哈希表中的键值对,键是唯一的而值可以重复 所以有下面的结果: key中原来已经有了f1,所以再使用hse…

C++:类型转换(static_cast、reinterpret_cast、const_cast、dynamic_cast)、RTTI

C:类型转换(static_cast、reinterpret_cast、const_cast、dynamic_cast)、RTTI 一、C语言类型转换二、C新增强制类型转换2.1 新增类型转换:static_cast2.2 新增类型转换: reinterpret_cast2.3 新增类型转换&#xff1a…

Spark-广播变量源码分析

一、广播变量使用 源码中给的例子是:org.apache.spark.examples.BroadcastTest 其中我们关心的只有两行代码,即创建广播变量和使用广播变量 //准备测试数据 val arr1 (0 until num).toArray //创建广播变量 val barr1 sc.broadcast(arr1) //使用广播…

python selenium网页操作

一、安装依赖 pip install -U seleniumselenium1.py: from selenium import webdriver from selenium.webdriver.common.by import Bydriver webdriver.Chrome() driver.get("https://www.selenium.dev/selenium/web/web-form.html") title driver.ti…

标准库标头 <bit>(C++20)学习

<bit>头文件是数值库的一部分。定义用于访问、操作和处理各个位和位序列的函数。例如&#xff0c;有函数可以旋转位、查找连续集或已清除位的数量、查看某个数是否为 2 的整数幂、查找表示数字的最小位数等。 类型 endian (C20) 指示标量类型的端序 (枚举) 函数 bit_ca…

微服务注册中⼼2

5.Nacos配置管理 Nacos除了可以做注册中⼼&#xff0c;同样可以做配置管理来使⽤ 5.1 统⼀配置管理 当微服务部署的实例越来越多&#xff0c;达到数⼗、数百时&#xff0c;逐个修改微服务配置就会让⼈抓狂&#xff0c;⽽且很容易出错。我们需要⼀种统⼀配置管理⽅案&#xf…