IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP/IP协议学习 -> 正文阅读

[网络协议]TCP/IP协议学习

TCP/IP协议详细了解(一)

快速了解一下TCP/IP协议族



前言

TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议),是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统。如下图,网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。

TCP/IP协议族的四个层次


链路层:也叫数据链路层或者网络接口层,通常包括在操作系统的驱动程序或者计算机里对应的网络接口卡。主要负责处理传输媒介的物理接口细节。

网络层:也称为互联网层,主要负责处理分组在网络中的活动。网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议) ,ICMP协议(Internet组管理协议)

运输层:主要负责为两台主机上的应用程序提供端到端的通信。这里有两个互不相同的传输协议TCP(传输控制协议)和UDP(用户数据报协议)

应用层:主要负责处理特定的应用程序细节。通常实现会提供下面这些通用的应用程序:Telnet远程登陆、FTP文件传输协议,SMTP简单邮件传送协议、SNMP简单网络管理协议等其他应用程序。

在TCP/IP协议组中有多少协议如下,不同层次的协议也是不同的。
在这里插入图片描述
上面的提到的这些协议具体内容如下:
TCP和UDP:这是我学习中见过很多次的协议,这俩都是运输层协议,二者都是用IP做为网络协议。TCP使用不靠谱的IP服务,但却提供可靠的传输层服务。UDP为应用程序发送和接收数据,与TCP不同的是UDP非常不可靠,于是也就不能保证数据能安全无误的送到目的点。

IP:网际互连协议,网络层主要协议,也被TCP和UDP使用。

ICMP:IP协议的附属协议,IP层用来与其他主机或路由器交换错误报文和其他重要信息。

IGMP:Internet组管理协议,它能将一个UDP数据报多播放到多个主机。

ARP和RARP:ARP是地址解析协议RARP是逆地址解析协议,是某些网络接口使用的特殊协议,用来转换IP层和网络接口层使用的地址。

一、互联网地址

互联网上的每个接口必须有一个唯一的Internet地址,也就是IP 地址。IP地址的长度通常为32bit,Internet地址不采用平面形式的地址空间,如下图所示,五类互联网地址格式。
在这里插入图片描述

32位地址通常写成四个十进制的数,每个整数对应一个字节。各类IP地址的范围如下:
在这里插入图片描述
可以知道区分各类地址最简单的方法就是直接看它的第一个十进制整数。
多接口主机有多个IP地址,其中每个接口都对应一个IP地址。由于互联网上的每个接口必须有一个唯一的IP地址,因此也需要一个管理机构接入互联网的网络分配IP地址,这个管理机构就是互联网网络信息中心(Internet Network Information Centre),称作InterNIC,这个只分配网络号。主机号的分配由系统管理员来负责。

三类IP地址:单播地址(目前为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)

二、域名系统

在TCP/IP领域中,领域系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。
任何应用程序都可以用一个标准的库函数来查看给定名字的主机的IP地址,类似的,系统还提供一个你函数——给定主机的IP地址,查看它所对应的主机名。也可以把IP地址作为参数。

三、封装

当应用程序TCP传送数据的时候,数据会被送入协议栈中,到每一层都会被当作一串比特流送入网络。每一层收到的数据都要增加一些首部信息(也有的要加尾部信息)。TCP传输到IP的数据单元称作TCP报文段或者简称为TCP段,IP传送给网络接口层的数据单元称作IP数据报(IP datagram)。通过以太网传输的比特流称为帧。
数据进入协议栈的封装过程如下:
在这里插入图片描述
UDP数据与TCP数据基本一致,UDP传给IP的需不需大白天哑巴称作UDP数据报。首部长为8字节。
IP在生成的IP首部要加入标识表示数据属于哪一层。IP的首部中存入一个长度为8bit的数值称为协议域。1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。
运输层协议在生成报文首部时也要存入一个应用程序的标识符。TCP和UDP都用一个16bit的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。
网络接口这里也必须在以太网帧的首部中加入某种形式的表示用来指明生成数据的网络层协议。以太网帧首部是一个16Bit的帧类型域。

四、分用

分用,就是当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部,每层协议和都要去检查报文首部中的协议表示,用来确定接收数据的上层协议。分用过程如下图:
在这里插入图片描述

五、端口号

服务器一般都是通过知名端口号来识别的,TCP/IP实现来说。FTP服务器的TCP端口号为21,Telnet服务器的TCP端口号为23,每个TFTP服务器的UDP的端口号为69。现在TCP/IP实现所提供的服务都用的知名的1-1023之间的端口号。

六、RFC

系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加入许多在标准内的论题,例如对于互联网新开发的协议及发展中所有的记录。因此几乎所有的互联网标准都有收录在RFC文件之中。
罗列一些重要的RFC文档:
1.赋值RFC(Assigned Numbers RFC)列出了所有internet协议中使用的数字和常数。
2.Internet正式协议标准,这个RFC描述了各种Internet协议的标准化现状。每种协议都处于下面几种标准化状态之一:标准、草案标准、提议标准、实验标准、信息标准和历史标准。
3.主机需求RFC。如果要查看有关协议更详细的细节内容,它们通常是一个入口点。它们列出了协议中关于“必须”、“应该”、“可以”、“不应该”或者“不能”等特性及其实现细节。
4.路由器需求RFC。它与主机需求RFC类似,但是只单独描述了路由器的需求。

七、标准的简单服务

当使用 TCP和UDP提供相同的服务时,一般选择相同的端口号。
在这里插入图片描述
可以发现端口号都是奇数,原因其实就是他们的前身就是NCP协议,NCP协议是单工的,于是每个应用程序需要两个连接,需要预留一对奇数和偶数的端口号,TCP和UDP成为标准的运输层协议时只用一个端口号就够了,于是就都用了奇数了。

八、互联网

internet意思是一个共同的协议族把多个网络连接在一起,而Internet是指的世界范围内通过TCP/IP互相通信的所有主机集合。Internet是一个internet,但internet不等于Internet。

九、实现

在这里插入图片描述
这个图列举了各种版本BDS并标注了重要的TCP/IP特性,左边为BSD网络版,其所有的网络源代码可以公开得到(包括协议本身以及许多应用程序和工具)

十、应用编程接口

使用TCP/IP协议的应用程序通常采用两种应用编程接口(API):socket和TLI(运输层接口:Transport Layer Interface)。

总结

今天主要学习了TCP/IP协议族,介绍了许多术语和协议。
TCP/IP协议族分为四层:链路层、网络层、运输层、应用层,每一层各有不同的责任。在TCP/IP中,网络层和运输层之间的区别是最为关键的:网络层(IP)提供点到点的服务,而运输层(TCP和UDP)提供端到端的服务。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:57:20  更:2022-07-17 16:57:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:33:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计