TCP/IP协议原理与介绍

一、什么是TCP/IP?

顾名思义 TCP/IP(Transmission Control Protocol/Internet Protocol),传输控制协议/网际协议,TCP/IP是现代Internet的核心技术,由IETF定义。所有的系统、终端、线路、用户、开发者,都必须遵守TCP/IP协议族所规定的法则!IP世界的根本法就是TCP/IP协议族。这里我又扯到协议族了,就像快乐家族,不仅仅我们很熟悉的何炅、谢娜。不仅包括主持人,还有导演、摄像等等其他工作人员。TCP/IP也就像一个组,协议族。其中还包括HTTP、Telnet、FTP、RIP、UDP等等。其名字来源于其中最主要的两个协议-------TCP与IP。它们分别在TCP/IP模型的第二层与第三层。

二、OSI参考模型和TCP/IP参考模型

   IP世界是由通信实体过程的,而通信实体,是要分层的。分层的好处在于:

1、各层之间是独立的。

2、灵活性好。

3、结构上可分割开。

4、易于实现和维护。

5、能促进标准化工作。

所以通信实体必须分出层次,以保证各种网络技术能和谐地共存和良好地配合,并不断激励技术创新。所以在1984年,国际标准化组织(ISO)建立了一套非常抽象的分层结构,这就是著名的ISO/OSI(国际标准化组织的开发网络架构),这对我们分析网络通信是非常有帮助的。

物理层(第一层):物理层解决最基础的传送通道,涉及问题主要是建立、维护和释放物理链路所需的机械的、电气的/光学的、功能的和规程的特性,如光缆如何抗衰耗,无线设备如何提高发射功率,为什么双绞线要有屏蔽层等。

数据链路层(第二层):数据链路在物理层按“位”服务的基础上,在相邻的网络节点直接提供简单的、传输以帧为单位的数据,同时还负责流量控制、差错控制(信号会因机器、电器气等原因出现错误)。以我们经常听到的“以太网帧”可以知道以太网就是属于这层的。

网络层(第三层):网络层对上层-----传输层提供两种服务,一种叫做“面向连接”的网络服务,一种叫做“无连接”的网络服务。网络层担负着四大任务:1.路由选择 2.拥塞控制 3.局域网间互联 4.统计和控制。我们津津乐道的IP协议就在这层起着重要的作用。

传输层(第四层):传输层的任务是向用户提供可靠地、透明的端到端的数据传输以及差错控制和流量控制机制。由于它的存在会话层、表示层、应用层的设计不必考虑底层细节,因此起到“承上启下”的作用。假如两台计算机A、B需要通信,那么A、B之间进行直接的传输层的通信,而在A、B之间如果有若干网络节点,如路由器X、Y、Z那么A与X,X与Y,Y与Z,Z与B之间都要进行第三层的通信。TCP与UDP就属于传输层。

会话层(第五层):会话层提供许多增值服务,如交互式对话管理,允许一路交互、两路交换、两路同时回话;管理用户登录远程分时系统;在两机器之间传输文件,进行同步控制等。

表示层(第六层):表示层就处理通信进程之间交换数据的表示方法,包括语法转换、数据格式的转换、加密与解密、压缩与解压缩等。

第七层(应用层):应用层正所谓站在巨人的肩膀上面的产物,底层所有协议的最终目的都是为应用层提供可靠的传送手段,底层协议并没有直接瞒住用户的任何实际需求。我们日常使用的收发电子邮件、传送文件、流量网页、交互及时信息等都属于应用层,是用户体验最直观的服务。

 正所谓“优胜劣汰,适者生存”,OSI由于体系比较复杂,不太方便计算机软件实现,逐渐退出人们关注的视野,TCP/IP得到了广泛的应用。
![blockchain](https://pic3.zhimg.com/80/v2-e3e6da6551e8178d4244a272b1765efa_hd.jpg)
  对比ISO/OSI的七层结构,读者会奇怪了:怎么没有表示层和会话层了呢?的确,在TCP/IP参考模型中这两层并不是必需的。其中还有个四层模型的说法数据链路层与物理层表示成网络接口层。TCP\IP体系结构最核心的部分就是上面三层:应用层、传输层、网络层。

(1)网络接口层:TCP/IP并没有严格定义该层,它只是要求能够提供给其上层-----网络层的一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。以太网是IP通信中数据链路层最常见的形式,除此之外还有PPP、HDLC等10Gbit/s以下的以太网一般应用于局域网,而PPP、HDLC则应用于广域网居多。

(2)网络层:俗称IP层,它处理机器之间的通信。IP是一个不可靠的、无连接协议,它接收来自传输层的请求,传输某个具有目的地址信息的分组。IP负责给互联网的每一台计算机或者终端分配一个地址,并将信息以IP包的形式传送到正确的目的地。这是TCP/IP的核心。IP协议族中最关键的是路由协议。

(3)传输层:传输层控制协议(TCP)与用户数据报协议(UDP)是该层的重要协议。TCP是一个面向连接的,可靠地协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP还要处理端到端的流量控制(滑动窗口机制)。UDP则是一个不靠谱,无连接的协议,主要适用于不需要对报文进行排序和流量控制的场合。(比如在信息传输中像重要文档与短信等等适用于TCP而视频传输可使用UDP)。

各个层次也对应着不同的协议如图:。

三TCP报文格式

 TCP报文包括首部(报头)和数据部分,其中首部的具体字段如下。

(1)源端口号和目的端口字段-----各占16bit。

(2)序号字段-----SEQ序号,占32bit。TCP连接中传送的的数据流中的每一个字节都编上序号,序号字段的值则是本报文段所发送的数据的第一个字节的序号。

(3)确认序号-----ACK序号,32bit,是期望收到对方的写下一个报文段的数据的第一个字节的序号。只有ACK的标志位为1是,确认序号字段才有效,ACK=SEQ+1。

(4)标志位:有6个如下

URG-----紧急信号表明紧急指针(urgent pointer),它能告诉系统此报文段有紧急数据,应尽快传送。

ACK-----确认信号只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。

PSH-----推送信号接收TCP推送bit置1的报文段,则尽快交付给接收应用进程,无需缓存。

RST-----复位信号当RST=1时,表明TCP连接中有严重错误,则释放连接,然后再重新建立连接。

SYN-----同步信号SYN表示一个连接请求或连接接收报文。

FIN-----终止信号用来释放一个连接。当FIN=1,表明报文段的发送端的数据已发送完毕,要求释放运输连接。

(5)数据偏移-----占4bit,它自出报文段的数据起始处距离TCP报文段起始处的位置。

(6)窗口字段-----占16bit,用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方确定对方的发送窗口上限。

(7)检验和-----占16bit,检验报文段的首部和数据,在检验之前要加上12字节的伪首部。

(8)紧急指针字段-----16bit。紧急指针指出在本报文段的紧急数据的最后一个字节的序号。

(9)选项字段-----无固定长度,TCP只规定了一种选项最大报文段长度MSS。

(10)保留字段-----占6位,暂无。

四、TCP的三次握手和四次挥手

TCP的连接和建立都是采用客户端服务器方式。主动发起连接建立的进程叫做客户端(Client)。被动等待连接建立的叫做服务器(Server)。

建立TCP连接需要三次握手如图

 第一次握手:Client(主机A)想Server(主机B)发送一个连接请求,在这个包中标志位SYN=1,发送序号SEQ=x,上图中令x=200,Client进入SYN_SEND状态,等待Server确认。

 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,确认序号ACK=x+1=201,随机阐释一个发送序号y,令y=500。并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

 第三次握手:Client收到去人后,检查确认序号ACK是否为x+1=201;标志位ACK是否为1,如果正确,则将标志位ACK置1,确认序号ACK=y+1=501,并将该数据包发送给Server,Server检查确认需号ACK是否为y+1=501,标志位是否为1,如果正确则 连接建立成功,Client和Server进入ESTABLISHED状态。

 形象地来理解,加入客户端是小明,服务器是小红,小明寄了一份邮件给小红邮件的标号就是SEQ,SYN就是短信里面小明想处对象的意图。小红收到后,也寄了信给小明,SEQ同样是小红邮件的编号,ACK=SEQ+1就是表面自己已经收到小明前一份信息,ACK标志位置1表明小红同意了小明处对象的请求,SYN也表示小红有相处对象的意图。于是同理小明就开始寄信说我要开始追你了。然后两人开始聊起未来······。三次握手走向未来~~~~~~!所以男生还是要主动点。

(形象理解会有小出入)

断开TCP连接的四次挥手

第一次挥手:当客户端A要断开TCP连接时,发送一个包,其中标志位FIN=1,ACK=1,发送序号SEQ=X,确认序号ACK=Z,Client进入FIN_WAIT状态。

  第二次挥手:客户B知道A要断开后,发送一个确认包,其中标志位ACK=1,发送序号SEQ=Z确认序号ACK=x+1,Server进入CLOSE_WAIT状态。

  第三次挥手:客户B也断开TCP连接,此时发送一个包,其中,标志位FIN=1,发送序号SEQ=Z+1

,Server进入LAST_ACK状态。

  第四次挥手:客户A收到B的断开请求后,Client进入TIME_WAIT状态,接着发送一个确认包,标志位ACK=1,发送序号SEQ=x+1,确认序号ACK=Z+2,Server进入CLOSE状态。

 同样举个栗子,就不拿小红和小明作比较了毕竟刚刚才进入热恋状态,接下来是小涛和小翠。男人有钱就变坏,小涛是个渣男,所以首先签了离婚协议书还有自己的一些证件(要求一个人小翠去办理)(ack),然后附带自己的分手信(seq)寄给小翠。ACK置1,FIN置1。小翠收到信件后,也二话没说,先回了一份信并且说明已经收到小涛的分手信且同意了(seq+1)然后也把证件先递过去(ack)。最后等待离婚证下来(ack+1)然后再把离婚证给小涛寄过去(ACK=1,FIN=1)。最后小涛还可耻的嘲笑了小翠一番(seq+1)ACK=1。

五、TCP/IP协议体系的常见术语

 (1)包

 包(Packet)是网络上传输的数据片段,也称为分组。包是一种统称,在不同的协议,不同层次,包有不同的名字,如TCP/IP中,数据链路层的包叫做帧(Frame),IP层的包称为IP数据报,TCP层的包常称为TCP报文等。大多数包都由包头和信息组成:包头常常包括源地址和目的地址、包的长度和类型指示符等。

 (2)封装

 不同设备的对等层之间依靠封装和解封装来实现相互间的通信。封装就像洗完澡光着身子穿衣服,解封装就像洗澡前脱衣服,脱了一层又一层直到脱光。TCP/IP也是一种计算机数据打包和寻址的标准方法。在数据传送中,可以形象的理解为有两个信封,TCP和IP就像信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在上面记录分段信息,然后再塞入IP大信封里面。同理接收端一步一步拆开来并校验,若发现错误,TCP机制则会要求重发。因此,TCP/IP在互联网中几乎可以无差错地传送数据。

 (3)数据段,数据包.数据帧

 通信过程中,TCP/IP层与层之间有协议数据单元(Protocol Data Unit)来交换彼此的信息,确保网络设备之间能够通信。传输层在上层数据的基础上加上TCP报头得到的PDU叫做数据段(Segment),依次往下数据段传给网络层,并添加IP报头得到的PDU叫做数据包(Packet),数据包传给数据链路层添加报头得到的PDU称作数据帧(Frame)。最后Frame被转换为bit在物理层通过网络介质传播。

原文地址:https://www.cnblogs.com/sjie0224/p/9097220.html

时间: 2024-10-03 14:08:02

TCP/IP协议原理与介绍的相关文章

TCP/IP协议原理学习笔记

昨天学习了杨宁老师的TCP/IP协议原理第一讲和第二讲,主要介绍了OSI模型,整理如下: OSI是open system innerconnection的简称,即开放式系统互联参考模型,它把网络协议从逻辑上分为了7层.即如上图所示: 1.物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后在转化为1.0,也就是我们常说的数模转换与模数转换).这一层的数据叫做比特. 2.数据链路层:定

TCP/IP协议原理与应用笔记17:IP编址之 IP地址简介(重点)

1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解主机的属性或者用途) (2)Address:在哪里,软件效率高. (3)Route(路由的标识):怎样到达 3. IP地址结构 (1)32 bit二进制地址 它模拟物理网的编址机制,如下示意图: (2)IP地址分类,如下: TCP/IP协议原理与应用笔记03:IP地址分类

TCP/IP协议原理与应用笔记05:网关

      大家都知道,从一个房间走到另一个房间,必然要经过一扇门.同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关.顾名思义,网关(Gateway)就是一个网络连接到另一个网络的"关口".      按照不同的分类标准,网关也有很多种.TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关.  那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址. 比如有网络A和网络B,网络A的IP地址范围为"19

OSI七层模型和TCP/IP协议簇的介绍

一.OSI模型的理解 ?国际标准化组织(International Standard Organization,ISO)于1984年颁布了开放系统互连(Open System Interconnection,OSI)参考模型 ?OSI参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上依次是:物理层.数据链路层.网络层.传输层.会话层.表示层和应用层 ·每一层的功能如下: 1.物理层 主要功能是建立.维护.断开物理连接. 利用传输介质为数据链路层提供物理连接,实现比特流的透明传输.尽可能

TCP/IP协议原理及应用

一.TCP/IP模型 1.TCP/IP 四层模型.五层模型与 OSI 七层模型对比 常用的是:TCP/IP 五层模型 2.TCP/IP 五层模型与 OSI 七层模型相同点: 两者都是以协议栈的概念为基础 协议栈中的协议彼此互相独立 下层对上层提供服务 3.TCP/IP 五层模型与 OSI 七层模型不同点: OSI 是先有模型,后有协议:TCP/IP是先有协议,后有模型 OSI 适用于各种协议栈:TCP/IP只适用于TCP/IP网络: 层次数量不同 二.TCP/IP版本4和版本6 1.TCP/IP

TCP/IP协议原理与应用笔记19:IP分组的交付和路由选择

1. 引言: (1)互联网结构: 信息:IP分组(直接广播地址(Directed Broadcast Address),其指定了在一个特定网络中的"所有主机".) 节点:路由器.主机----->选择路径,交付分组 信道:物理网络(路由器之间)----->传送IP分组 (2)交付 和 路由选择 --->1. Delivery(交付):对分组的物理转发     交付 是由Routed protocol(沿选定的路径交付分组)完成的.     Routed protocol

TCP/IP协议原理与应用笔记03:IP地址分类

1. 事实上,每个IP地址都包含两部分,即网络号和主机号. 例如:202.112.81.34指的 就是202.112.81这个网络的第34号机. 网络号:用于识别主机所在的网络: 主机号:用于识别该网络中的主机. 当分配给主机号的二进制位越多,则能标识的主机数就越多,相应地能标识的网络数就越少,反之亦然. 2. IP地址分为五类: A类保留给政府机构, B类分配给中等规模的公司, C类分配给任何需要的人, D类用于组播, E类用于实验, 各类可容纳的地址数目不同. 3. A.B.C三类IP地址的

TCP/IP协议原理与应用笔记01:ISO/OSI网络参考模型

1.OSI参考模型 第7层应用层:直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输   第6层表示层:格式化数据,以便为应用程序提供通用接口.这可以包括加密服务   第5层会话层:在两个节点之间建立端连接.此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式   第4层传输层:常规数据递送-面向连接或无连接.包括全双工或半双工.   流控制和错误恢复服务    第3层网络层:本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据  

TCP/IP协议原理与应用笔记15:网络连接设备

1. 网络连接设备: (1)转发器 Repeater/ 集线器 Hub (2)网桥 Bridge / 交换机 Switch (3)路由器 Router (4)网关 Gateway 2. 从通信角度看待网络连接设备: (1)转发器/集线器:(转发器/集线器的转发数据仅仅发生在物理层,完成比特数据在物理层的传输) 转发器是一类重建到来的电子.无线或光学信号的网络设备.实现物理层的连接,对衰减的信号进行放大整形或再生,起到扩展网段距离的作用. 也可以这样连接: (2)网桥 / 交换机 交换机是一种用于