TCP/IP体系结构简介

2023-11-06

一、网络体系的构成
访问方式 数据帧格式 布线类型 布线规则

二、网络体系的类型

	IEEE 802.3(以太网):在大多数办公室和家庭中使用的基于线缆的网络,就是常见的有线局域网。
	IEEE 802.11(无线网络):在办公室、家庭和咖啡厅使用的无线网络技术,如 Wi-Fi 网络。
	IEEE 802.16(WiMAX):用于移动通信长距离无线连接的技术。
	点到点协议(PPP):使用 Modem 通过电话线进行连接的技术,如通过拨号方式建立的网络连接

三、MAC 地址格式

	MAC 地址都是由生产厂家在生产时固化在网络硬件中,是硬件预留的地址。 
	MAC 地址采用十六进制数表示,共 6 个字节(48 位),长度为 48bit(字节)

	前 24 位称为组织唯一标识符		IEEE
	后 24 位是由厂家自己分配的	

四、以太网拓扑结构

	总线型
	星型
	
	以太网采用了多种连接介质,如同轴缆、双绞线和光纤等
	
以太网是一种广播网络。	
以太网中的数据借助传输介质进行传输  用附加冲突检测的载波帧听多路访问(CSMA/CD)机制


以太网中的一台主机要传输数据时,工作过程如下:

							      有
	监听信道上是否有信号在传输—|—————————>继续帧听,直到信道空闲为止。
							   |
							   |  无				  继续监听
							   |—————————>传输数据。————————————>如果发现冲突,则执行退避算法。随机等待一段时间后,重新执行步骤1
														|
                                                        |—————>当冲突发生时,涉及冲突的计算机会返回监听信道状态。若未发现冲突,则表示发送成功。

IP协议:源地址主机和目标地址主机

同一网段,目标 IP 地址被 ARP 协议解析为 MAC 地址,然后根据 MAC 地址,源主机直接把数据包发给目标主机。 

不同网段,
		网关(一般为路由器)的 IP 地址被 ARP 协议解析为 MAC 地址源主机将数据包发送到网关
		网关根据数据包中的网段 ID 寻找目标网络。如果找到,将数据包发送到目标网段 找不到  重复上一步骤
		数据包经过网关被发送到正确的网段中。目标IP地址被ARP协议解析为 MAC 地址根据该 MAC 地址,数据包被发送给目标地址的主机。

ARP 是“Address Resolution Protocol”的缩写,译为“地址解析协议”,它是根据 IP 地址获取物理地址的一个 TCP/IP 协议。

ARP 缓存
	求目标主机的 MAC 地址时,每次获取目标主机 MAC 地址都需要发送一次 ARP 请求,然后根据响应获取到 MAC 地址。为避免重复加缓存
	请求 MAC 地址时,直接查询 ARP 缓存,而无须再发送 ARP 请求

===========================================
ICMP
控制报文协议(Internet Control Message Protocol,ICMP)是 TCP/IP 协议族的一个子协议

					使用ICMP 
IP 主机<——————————————————————————>路由器
			 IP(不可靠、无连接)
			
描述网络是否通畅、主机是否可达、路由器是否可用等网络状态。

++++++++++++++++++++++++++++++++++++++++++++++

IP编址:32个二进制位

网络位(网段)+主机位(那一台主机)	
192.168.1.	+  XX
192:11000000
168:10101000
  1:00000001
  
IP地址分类
	A	0 		8bit	24bit
	B	10 		16		16
	C	110 	24		8
	D	1110    组播
	E	1111	保留
	
子网掩码:用于区分网络位和主机位部分   与IP地址相与
	
	A类		255.0.0.0
	B类		255.255.0.0
	C类		255.255.255.0
	
	主机数  2^n
	可用主机数	2^n - 2 (减  本王网段的网络地址  广播地址)

	如何最大限度利用主机数:
		1、缺省子网掩码
		2、可变长子网掩码
		3、无类域间路由

网关:
	用来转发来自不同网段之间的数据包
	
IP包分片(IP报文长度超过了数据链路所支持的最大长度)
TTL报文 (避免环路导致网络拥塞 无限循环无法到达目的端)

IP地址分配(静态分配+动态分配+零配置)

1、静态分配
	IP地址		192.168.12.XX
	子网掩码	255.255.255.0
	默认网关	192.168.12.1
	
	DNS服务器地址
	
	首选DNS服务器	192.168.12.1  (一般默认网关)

 2、动态分配IP地址
	动态分配是指计算机向 DHCP 服务器申请 IP 地址,获取后使用该地址。这时,计算机作为 DHCP 客户机。


3、配置
	在动态分配方式中,如果 DHCP 服务器不在线或出现故障等情况时,
	客户机就无法获取地址。这时,有些系统将会通过零配置技术为自己分配一个私有的地址,
	范围为 169.254.0.0~169.254.255.255。

传输层协议:TCP UDP

TCP端口号:
	协议		端口号
	FTP				21 20
	HTTP			80
	HTTPS			443
	Telnet			23
	SMTP			25

============================================
数据转发过程:
当主机建立了达到目的地的TCP连接后 便可以对应用层数据进行封装。

主机A<——————						  ——————————>服务器A
			|——RTA   Internet  RTB————|
主机B<——————						  ——————————>服务器B

1、传输层 (TCP封装) :数据加密、压缩..传输层封装(填充源端口和目的端口字段,初始序列号和确认序列号字段,标识位,窗口字段以及校验和字段)
2、网络层 (IP封装) :	需要明确IP报文的源和目的地址,IP报文的大小大于MTU 则分片传输。
					TTL=255	
					Protocol字段:传输层使用的是TCP协议,所以该字段的填充值为0X06
	2.1、查找路由	:(主机A在发送数据前需要先检查是否能够到达目的端  每个主机都会独自维护各自的路由表项)			  
		
	2.2、ARP :数据包封装成数据帧,主机A需要获取下一跳MAC地址(网关地址)
			* 先查找ARP缓存表(存在MAC地址则使用;无发送ARP请求获取)
3、数据链路层 (以太帧封装):	主机A在链路层封装数据帧时,会遵循IEEE 802.3或Ethernet_II标准
	使用的是Ethernet_II标准:
							Type:	0X0800  表示网络层使用的是IP协议。
							D.MAC	路由器/网关 MAC地址
							S.MAC	主机AMAC地址
封装过后就是转发过程了:见下	
-------------------------
	
数据帧转发过程:
				主机A工作在半双工状态下  使用CSMA/CD检测链路是否空闲。空闲;前导码(Preamble)和一个帧首定界符(SFD)附加到帧头然后进行传输
				冲突域里设备会收到主机A发送的数据帧(只有含有目的MAC的设备会处理数据帧  FCS校验。如果FCS校验未能通过,则帧被立即丢弃)
				
数据包转发过程:网络层处理   网关检查是否有到达目的网络的路由条目
				
				RTA收到此数据报文后先根据IP头部信息中的校验和字段,检查IP数据报文头部的完整性
				然后根据目的IP地址查看路由表,确定是否能够将数据包转发到目的端

				网络层处理完成后,报文将被送到数据链路层重新进行封装(部会封装新的源MAC地址和目的MAC地址)					

数据帧解封装:路由————>服务器
	
			RTB以服务器A的MAC地址作为目的MAC继续转发  服务器A收到数据帧后 目的MAC是自己的会继续处理该数据帧
			服务器A成功收到该帧,并通过FCS校验。服务器A将利用帧中的类型字段来识别在网络层处理该数据的协议(如通过IP协议处理)
数据包解封装:
			
		服务器A检查IP	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP/IP体系结构简介 的相关文章

  • 怎样修改linux时区

    怎样修改linux时区 如果你的 Linux 系统时区配置不正确 必需要手动调整到正确的当地时区 NTP 对时间的同步处理只计算当地时间与 UTC 时间的偏移量 因此配置一个 NTP 对时间进行同步并不能解决时区不正确的问题 所以大家在用了
  • vue项目,ie11 浏览器报 Promise 未定义的错误

    报错 description Promise 未定义 message Promise 未定义 name ReferenceEr number 2146823279 stack ReferenceEr 解决办法 1 npm install b
  • AIDL实现跨APP通信(双向通信)

    某天 接到了一人任务要在两个app互相传递一些消息 上网查了以后发现有几种方式 第一是广播 第二是AIDL 由于初出茅庐全不会就选择了AIDL 下面简单粗暴的开始贴代码好了 也是得到了网上的一些借鉴 若有雷同 嗯你懂的 1 我们需要先建立A
  • SVN出现:原始内容“XXXX“不存在

    缘由 偶然一次在工作期间 策划的svn出现了 原始内容 XXXX 不存在 的提示 无论是用清理 还是还原都无效 由于是第一次遇到所以记录一下解决过程 分析 从提示上看大致可知是某个文件不存在了 估计是异常操作svn导致一些文件丢失 据网上资
  • Python中的for循环

    Python中的for循环 在Python编程语言中 for循环是一种常用的迭代结构 用于遍历可迭代对象 iterable 它允许我们按照指定的方式重复执行一系列操作 直到满足退出条件 在本文中 我们将详细介绍for循环的使用方式 并提供相

随机推荐

  • 快速排序的优化及其与qsort的比较

    快速排序是用的最多的一种排序方法 编程珠玑 在第十一章 排序 中讨论了快速排序的几个版本 其实版本的不同 都是体现在partition函数上 partition版本1 其实就是 算法导论 给出的版本 很好理解 int partition1
  • 在main函数实现两个数的输入并用函数实现两个数的值相换(两种方法实现)

    在main函数实现两个数的输入并用函数实现两个数的值相换 1 方法一 void f int x int y 定义 声明函数 int t 临时变量 t x x y y t 关于汉诺塔这个是最简单的算法 include
  • python lambda函数排序_python笔记-lambda函数、sorted函数、map函数

    1 lambda函数 又称匿名函数 示例如下 def f x return x 2 print f 4 16 g lambda x x 2 print g 4 16 2 map函数 print map lambda x x 2 range
  • 分布式任务调度(XXL-JOB)

    什么是分布式任务调度 任务调度顾名思义 就是对任务的调度 它是指系统为了完成特定业务 基于给定时间点 给定时间间隔或者给定执行次数自动执行任务 通常任务调度的程序是集成在应用中的 比如 优惠卷服务中包括了定时发放优惠卷的的调度程序 结算服务
  • 减小android button的大小

    当我们仅需要按钮的大小恰当包裹其中文本的大小 尽可能减小多余的空白空间 第一种方式 我们可以直接设置button属性 minHeight和minWidth android minHeight 0dp android minWidth 0dp
  • 工业通信网络结构

    工业通信网络结构 工业通信网络包含所谓的工业现场总线 局域网 公网等概念 这些概念在物理环境下并不是界线分明的 是一种主观上的分类 在物理环境下 目前工业网络结构都是设备与双绞线之间的通信 可以互相通信的设备与双绞线的集合称为网络 当网络中
  • 【深度学习常见问题——Attention基础知识梳理】

    这里写目录标题 1 注意力机制计算 2 d k sqrt d k dk
  • Unity 编辑器ScrollView滚动卡顿优化

    原因 在使用 Unity 开发游戏的时候 经常会需要用到数据配置 方式可能是CSV JSON等等 为了可以方便地查看修改数据 通常使用ScrollView实现在 Unity 编辑器里面以列表的形式查看数据 当数据量大的时候 滚动视图会发现卡
  • Linux下如何查看系统启动时间和运行时间

    1 uptime命令输出 16 11 40 up 59 days 4 21 2 users load average 0 00 0 01 0 002 查看 proc uptime文件计算系统启动时间cat proc uptime输出 511
  • 有了内存地址范围,如何确定内存空间容量大小?

    假如RAM的地址范围从0x2000 0000到0x2000 2000 也就是有2000个内存地址 1个内存地址是可以存8位二进制数 如何来算这空间的容量是多少字节呢 先用0x2000 2000 0x2000 0000 2000 得到的200
  • R语言的字符串

    几乎所有的程序都离不开字符串 例如姓名 性别 男或女 商品名称 类别等等 因此在程序开发过程中就避免不了对字符串进行操作处理 常用的如拼接字符串 计算字符串长度 截取字符串 字符串拆分等等 字符串规范 在R语言中 字符串通常使用单引号或双引
  • Halcon API

    1 延时等待 wait seconds 0 5 注 括号内以秒为单位 2 遍历文件夹 list files Directory Options Files Directory 目录 文件夹路径 Options 选项 files 指定搜索的格
  • 尚硅谷面试题第三季

    java字符串常量池 package atguigu demo1 public class StringPool58Demo public static void main String args String str1 new Strin
  • 安装MySQL时出现黄色感叹号,提示3306已被占用

    今天安装MySQL遇到这个问题 取消安装后卸载 再次安装 一直是这个问题 查询资料后得知是3306端口被占用 那么windows系统如何查看现在某个端口的应用进程id呢 命令是 netstat aon findstr 3306 那么 最后的
  • zabbix服务器监控

    zabbix服务器监控 文章目录 zabbix服务器监控 一 zabbix服务器监控 概念 1 服务器上安装zabbix agent 2 启动zabbix agent服务 二 监控远程linux服务器 1 将server的hosts文件复制
  • 数据导出Excel时,忽略一些导出项(Java)

    仅供学习 不可转载 欢迎评论 导言 在做导出功能时 我们一般都是导出到一个Excel表格里面 但是有些数据字段我们不想导出来 如果导出来之后再去删除 这时就显得比较麻烦 下面介绍一种方法直接就可以忽略一些不想导出的数据字段 实例演示 下面这
  • angularJS懒加载实现

    angularJS懒加载 主要是分担首页文件加载效率提高渲染性能 实现要点 1 项目模块化 使用import export 进行模块化 2 路由 使用ui router进行路由切换 3 模块异步加载 1 使用import 实现文件动态加载
  • ​LeetCode刷题实战479:最大回文数乘积

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 最大回文数乘积 我们先来看题面
  • 批处理获取管理员权限

    废话少说 先上代码 echo off BatchGotAdmin REM gt Check for permissions IF PROCESSOR ARCHITECTURE EQU amd64 gt nul 2 gt 1 SYSTEMRO
  • TCP/IP体系结构简介

    一 网络体系的构成 访问方式 数据帧格式 布线类型 布线规则 二 网络体系的类型 IEEE 802 3 以太网 在大多数办公室和家庭中使用的基于线缆的网络 就是常见的有线局域网 IEEE 802 11 无线网络 在办公室 家庭和咖啡厅使用的