传输层协议介绍概述

文章目录

    • TCP协议介绍
    • TCP报文格式
    • TCP三次握手
    • TCP四次挥手
    • UDP协议介绍
    • 常见协议及其端口

TCP协议介绍

一,TCP协议介绍
TCP(传输控制协议):先建立连接,在进行传输数据,同时具有重传功能

传输层协议介绍概述_第1张图片

TCP报文格式

二,TCP报文格式

源端口号:发送方进程的端口号(那个应用程序发出来了)
有各种不同类型的应用程序,每个程序根据功能不同,会划分不同的端口编号

目标端口号:接收端进程的端口号,接收端收到数据段后,根据这个端口号来确定把数据
送个那个应用程序的进程

序号:发送端分片后为每个字节进行编号,便于接收端正确重组,保证数据正确性

确认号:用于确认发送端的信息(就是跟发送端说,接收端收到了)

首部长度:它可以确认TCP首部数据结构的字节长度
一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节

保留:为了特殊情况保留的字节长度

控制号:在我和目标服务器连接时每一个特殊状态的标识

 URG:紧急位,紧急指针有效位,URG=1时提醒接收端指整段数据中有几个字节是紧急的(重要的)

 ACK:确认请求,AcK(大小写 确认回复收到请求)

确认位,只有当ACK=1时,确认序列号字段才有效,ACK=0时,确认字段无效

 PSH:急迫位,标志为1时,要求接受方尽快将数据段送达应用层

PSH=1时提醒接收端指整段数据都是紧急的(重要的)

 RST:重置位,RST为1时,通知重新建立TCP连接

若传输时整段数据,有丢失并且找不回来就会用到RST重新连接传输

 SYN:建立连接,同步(连接)位,同步序号位,TCP需要建立连接时将这个值设为1

 FIN:断开连接,(断开位),当TCP完成传输数据传输需要断开连接时,提出断开连接方将这个值设为1

窗口大小:用于说明本地接收数据段的数目,窗口大小是可变的
网络好时窗口就会变大加快传输速度,网络差时窗口就会变小保证数据可靠传输,
TCP中的流量控制机制就是依赖变化窗口的大小实现的

校验和:用来做差错控制,字段检验的范围包括首部和数据这两部分,数据段在发送时和到达目的地时会进行
校验和计算,若这两次的校验一致,说明数据基本正确,否则会认为数据被破坏,接收端将丢弃该数据

紧急指针:和URG配合使用,当URG=1时有效

选项:在TGP首部可以有多达40字节的可选信息,例,最大报文长度MSS(最大段大小),MSS告诉对方
TCP:我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节

传输层协议介绍概述_第2张图片

TCP三次握手

三,TCP三次握手(只是建立了可靠性较强的连接通道,发送数据获取数据还得靠IP MAC地址HTTP协议等发送接收)
TCP的建立连接的过程称为三次握手 pc1客户端(自己电脑) pc2服务端(百度服务器 )Seq(这段报文请求长度)

例:要访问百度服务器要先建立连接(连接是双向的),首先pc1要先向pc2发送SYN报文(Seq=x SYN=1)建立连接请求(第一次握手),pc2向pc1发送了两段SYN+ACK报文(Seq=y Ack=x+1 SYN=1 ACK=1),第一段是确认你向pc2建立连接请求(Seq=y Ack=x+1),二段是pc2向pc1建立连接请求(SYN=1 ACK=1)(第二次握手),pc1向pc2发送ACK报文(Seq=x+1 Ack=y+1 ACK)我收到了你的请求,确认pc2向pc1的连接请求(第三次握手)。

传输层协议介绍概述_第3张图片

TCP四次挥手

四,TCP四次挥手(TCP半断开概念)
TCP断开连接的过程称为四次挥手 pc1客户端(自己电脑) pc2服务端(百度服务器 )
断开连接(双向的要双方确认断开)
例:pc1向pc2发送确认断开连接请求报文(FIN=1,ACK=1)第一次挥手,pc2向pc1收到确认断开报文(ACK=1)第二次挥手,(但有个半断开连接过程(有可有数据没传输完),例:你向pc2访问下载的数据还没传输完成)下载完成后,pc2向pc1发送确认断开连接请求报文(FIN=1,ACK=1)第三次挥手,pc1向pc2发送报文(ACK=1)确认收到断开请求,第四次挥手,断开完成

传输层协议介绍概述_第4张图片

为什么握手不是两次或四次

因为:如果两次的话就只是单方面连接了,pc1只能向pc2传输,pc2回应不回来,所以要三次握手双向确认

为什么不四次呢因为:为了节省占用资源(很少的话影响不大,多了就不可以)

UDP协议介绍

UDP(用户数据包协议):无需建立连接,更多注重传输速度,效率更高,不稳定,花费开销小

传输层协议介绍概述_第5张图片

传输层协议介绍概述_第6张图片

常见协议及其端口

常见的TCP端口号及功能
FTP(21):FTP服务器所开放的控制的端口
TELNET(23):用于远程登录,可以远程控制管理目标计算机
SMTP(25):SMTP服务器开放的端口,用于发送邮件
HTTP(80):超文本传输协议,明文传输
HTTPS(443):超文本传输协议,密文传输
于远程登录,可以远程控制管理目标计算机
SMTP(25):SMTP服务器开放的端口,用于发送邮件
HTTP(80):超文本传输协议,明文传输
HTTPS(443):超文本传输协议,密文传输
POP3(110):用于邮件的接收

你可能感兴趣的:(网络,网络协议)