栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

传输层协议介绍

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

传输层协议介绍

  1. TCP协议介绍
  2. TCP报文格式
  3. TCP三次握手
  4. TCP四次挥手
  5. UDP协议介绍
  6. 常见协议及端口
  7. 总结

1.TCP协议介绍

无连接网络协议,是指通信双方不需要先建立一条通信线路,而是把每个带有目的地址的包送到网络线路上,由系统自主选定线路进行传输。比如qq发消息。

TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输。每一个TCP都有发送缓存和接收缓存,用来临时存储数据。

TCP报文段

TCP将若干个字节构成一个分组,叫报文段。

TCP报文段封装在IP数据报中。

 

2.TCP报文格式

源端口号(16)

目标端口号(16)

序号(32)

确认号(32)

首部长度(4)

保留

(6)

U

R

G

A

C

K

P

S

H

R

S

T

S

Y

N

F

I

N

窗口大小(16)

校验和(16)

紧急指针(16)

选项

源端口号:发送方进程的端口号。

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

序号:发送端为每个字节进行编号,便于接收端正确重组。

当TCP从进程接收数据字节时,把他们分片成数据段存储在发送缓存中,并对每一个字节进行编号。当数据到达目的地后,接收端会按照这个序号把数据重新排列,保证数据的正确性。

确认号:对发送端的确认信息。

接受端响应消息是将会用它来告诉发送端这个序号之前的数据段已经收到,如确认好是x,就是标识x-1个数据段都已经收到。

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

控制位:

URG:紧急位。紧急指针有效位。

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

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

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

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

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

窗口大小:说明本地可接受数据段的数目。这个值的大小时可变的,当网络通畅时接收端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP中的流量控制机制就是依靠变化窗口的大小实现的。

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

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

选项:在TCP首部可以有多达40字节的可选信息。例如,最大报文段长度MSS(Maximum Segment Size)。MSS告诉对方TCP:“我的缓存所能接受的报文段的数据字段的最大长度时MSS个字节。”

3.TCP三次握手

TCP建立连接的过程称位三次握手

 

TCP时面向连接的,就是说每次发送数据之前都要和对方建立一条可靠的连接,这个建立连接的过程分为三个步骤,就叫做三次握手

当服务端向服务端发送请求连接的报文时:

Seq序列号=x(x为随机)

SYN=1(标识发送连接请求)

服务端收到客户端发来的请求报文后,同意建立连接,则向客户端发送确认报文:

Seq序列号=y(这时服务器也会产生一个序列号Y,和客户端的序号不相关)

ACK确认号=x+1(Seq序列号x+1,标识确认收到了客户端的请求)

ACK=1(表示这是条确认请求)

SYN=1(同时也发送一个建立连接的请求)

客户端进程收到服务端进程的确认后,还要向服务端给出确认,然后链接成功建立:

Seq序列号=x+1(这时客户端的序列号为1)

ACK确认=Y+1(表示确认收到了服务器的连续请求)

ACK=1(表示这是确认报文)

4.TCP四次挥手

 

客户端向服务器发送断开连接的报文时:

FIN=1(表示发送断开请求)

ACK=1(表示这是条确认请求)

服务器收到客户端发来的请求报文后,同意断开连接:

ACK=1(表示确认收到了客户端的断开请求)

服务器向客户端发送断开连接请求:

FIN=1(表示服务器也向客户端发送断开请求,同意断开)

ACK=1(表示这是条确认请求)

客户端收到服务器的请求报文后,同意断开连接,然后断开成功:

ACK=1(确认同意断开)

5.UDP协议介绍

UDP协议是无连接、不保证可靠性的传输层协议。发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。传输数据速度更快,效率更快。

6.常见协议及端口

常见的TCP端口号及其功能

端口

协议

说明

21(20)

FTP

FTP服务器所开放的控制端口

23

TELNET

用于远程登录,可以远程控制管理目标计算机

25

SMTP

SMTP服务开放的端口,用于发送邮件

80

HTTP

超文本传输(HTTPS  443  二次加密)

110

POP3

用于邮件的接收

53

DNS

建立连接(UDP 用来解析)

常用的UDP端口号及其功能

端口

协议

说明

69

TFTP

简单文件传输协议

111

RPC

远程过程调用

123

NTP

网络事件协议

161

SNMP

关于简单网络管理的协议

7.总结

TCP的含义

TCP报文结构及含义

TCP建立连接三次握手的过程

TCP断开连接四次挥手的过程

UDP的含义

常见协议的端口及作用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631631.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号