TCP/UDP协议总结与应用层常见协议及端口

  • 1、TCP协议
    • TCP协议概述
    • TCP的应用场景
    • TCP的特点
    • TCP的报文格式
    • TCP三次握手
    • TCP四次挥手
  • 2、UDP协议
    • UDP概述
    • UDP的应用场景
    • UDP的特点
    • UDP报文格式
  • 3、协议对比
  • 4、应用层常见协议及端口

1、TCP协议

TCP协议概述

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

TCP的应用场景

需要将传输的文件分段传输,建立会话。具体应用场景如下:

  • 效率要求相对低,但对准确性要求相对高的场景,因为传输中需要对数据进行确认,重发,排序等操作,效率没有UDP高。
  • 文件传输:FTP\HTTP对数据的准确性要求高,速度可以相对慢。
  • 发送或接收邮件:POP3\IMAP\SMTP对数据准确性要求高,非紧急应用。
  • 远程登陆:TELNET\SSH对数据准确性有一定要求,有连接概。

TCP的特点

  • TCP是面向连接的传输协议。
  • 每一条TCP连接只能有2个端口。每一条TCP连接只能是点对点的。
  • TCP提供可靠通信。
  • TCP是全双工通信。
  • 面向字节流。

TCP的报文格式

  • 源端口:源端口和IP地址的作用是标识报文的返回地址。
  • 目的端口:端口指明接收方计算机上的应用程序接口。
  • 序列号:序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400。所以序号确保了TCP传输的有序性。
  • 确认号:即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。比如建立连接时,SYN报文的ACK标志位为0。
  • 数据偏移/首部长度:4位,该字段的值是TCP首部(包括选项)长度除以4。
  • 保留:为将来定义新的用途保留,现在一般置0。
  • 控制位:URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能。
    1.URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
    2.ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
    3.PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
    4.RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
    5.SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
    6.FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
  • 窗口:滑动窗口大小,用来告知发送端接受端的缓存大小。
  • 校验和:奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据。
  • 紧急指针:只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。

TCP三次握手

  • 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
  • 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
  • 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
    三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

TCP四次挥手

  • 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
  • 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
  • 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
  • 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。

2、UDP协议

UDP概述

User Data Protocol用户数据包协议,是传输层中一种无连接协议。提供面向报文的简单不可靠信息传送服务。UDP在IP报文的协议号是17。UDP不对数据包分组、组装以及不能对数据包进行排序,当报文发送之后,UDP是无法得知其是否安全完整到达的。

UDP的应用场景

UDP运用在一个数据包就能够完成数据通信,不需要分段,不需要建立会话,不需要流量控制,是不可靠的传输协议。绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、即时多媒体游戏和IP电话就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(即TCP协议)来代替UDP。

UDP的特点

  • UDP是无连接的,传输数据之前源端和终端不建立连接不需要建立连接。
  • 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
  • UDP支持一对一、一对多、多对一和多对多的交互通信。
  • UDP是面向报文。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
  • UDP信息包只有8个字节,相对于TCP的20个字节信息包而言UDP的额外开销很小。

UDP报文格式


UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据报长度、校验值。

  • 源端口号:发送端口。
  • 目标端口号:接受端口。
  • 数据报长度:保存了UDP首部的长度跟数据长度之和。
  • 校验值:提供可靠的UDP首部和数据。

3、协议对比

UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同:

  • TCP 是面向连接的传输控制协议;而UDP 提供了无连接的数据报服务。
  • TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作。
  • UDP 具有较好的实时性,工作效率较 TCP 协议高。UDP 段结构比 TCP 的段结构简单,因此网络开销也小。
  • TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。

4、应用层常见协议及端口

常见服务 协议 端口号
POP3 TCP 110
IMAP TCP 143
SMTP TCP 25
Telnet TCP 23
RDP TCP 3389
PPTP TCP 1723
HTTP TCP 80
HTTPS TCP 443
FTP TCP 20/21
NTP UDP 123
RADIUS UDP 1645
DHCP UDP 67
DNS TCP/UDP 53
SNMP UDP 161
TFTP UDP 69
L2TP UDP 1701
ipsec UDP 500

TCP/UDP协议总结与应用层常见协议及端口相关推荐

  1. 应用层常见协议——知识点

    这里总结了三种常见的应用层协议:HTTP.FTP.SMTP.供自己复习使用,也供大家参考! 一.HTTP协议 1.HTTP简介 -超文本传输协议(Hypertext transfer protocol ...

  2. 应用层常见协议及端口号

    在TCP/IP模型中,应用层是最高层.应用层包括所有的高层协议,并且不断有新的协议加入. TCP/IP参考模型中应用层和下层协议之间的关系如下: 应用层的许多协议都是基于(C/S client /se ...

  3. 一文入门网络编程:常见协议、通信过程、Socket、CS/BS、TCP/UDP

    网络编程三要素:ip地址.端口.协议,在网络通信协议下,不同计算机上运行的程序,可以进行数据传输 常见协议: 传输层 常见协议有TCP/UDP协议. 应用层 常见的协议有HTTP协议,FTP协议. 网 ...

  4. ftp协议是一种用于_______的协议_网络安全常见协议解析:TCP、UDP、HTTP、FTP、SMTP等之间的区别...

    了解网络安全行业的都知道,网络安全协议是营造网络安全环境的基础,是构建安全网络的关键技术.常见的网络协议如HTTP协议.TCP/IP协议.FTP协议等. 如果你想进入网安行业,这些协议都是需要重点要学 ...

  5. 网络协议-网络分层、TCP/UDP、TCP三次握手和四次挥手

    网络的五层划分是什么? 应用层,常见协议:HTTP.FTP 传输层,常见协议:TCP.UDP 网络层,常见协议:IP 链路层 物理层 TCP 和 UDP 的区别是什么 TCP/UDP 都属于传输层的协 ...

  6. 应用协议 tcp udp

    运行于TCP协议之上的协议: HTTP协议:超文本传输协议,用于普通浏览 HTTPS协议:安全超文本传输协议,身披SSL外衣的HTTP协议 FTP协议:文件传输协议,用于文件传输 POP3协议:邮局协 ...

  7. 应用层常见的几种协议

    1)HTTP协议(Hyper Text Transfer Protocol,超文本传输协议) 是一种最基本的客户机/服务器的访问协议.浏览器向服务器发送请求,而服务器回应相应的网页,用于从万维网(WW ...

  8. 网络基础 -- 应用层HTTP协议

    目录 应用层(TCP/IP协议中的应用层/HTTP协议) HTTP协议 URL -- 统一资源定位符 UrlEncode / UrlDecode HTTP协议格式 概述 HTTP 请求消息Reques ...

  9. 又白又菜study:《TCP/IP 详解 :卷1 协议》

    Introduction: TCP/IP 协议族能够让电脑之间互相通信: TCP/IP 历史: 起源于20世纪60年代由政府出资研究的项目分组交换网络: 20世纪90年代,演变成计算机之间最广泛使用的 ...

最新文章

  1. echarts前后端交互数据_SpringBoot2.0实战(26)整合SpringSecurity前后端分离JSON交互...
  2. 马斯克的星辰大海,还在继续。“月球电梯,我来啦”
  3. Qt-ros插件:创建工程,编译实现操控小乌龟(二)
  4. sqlserver安装显示句柄无效_Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法...
  5. Android自定义view之圆形进度条
  6. web应用自动化测试的演进
  7. Spring框架----自动按照类型注入的Autowired注解
  8. 软件工程导论 07章软件测试
  9. ubuntu下安装最新 版jre 7
  10. Android 怎么使用Bitmap+Canvas 自适应屏幕
  11. Atitit.sql where条件表达式的原理  attilax概括
  12. 易洁仓库管理 v3.1.125 网络版 官方
  13. 毕业论文格式(图片题注引用,表格,公式格式)
  14. 结对编程——自动生成数学试卷的系统(javaswing,mysql)by 陈松刘宇航
  15. python基础语法和变量
  16. C盘数据丢失恢复详解和注意事项
  17. [转]Linux块设备加速缓存bcache和dm-cache:使用SSD来加速服务器
  18. BLE协议栈学习2——OSAL
  19. 【软件工程】------软件开发
  20. 郑州大学本科生毕业论文latex模板

热门文章

  1. vue docx-preview实现docx文件在线预览
  2. 编译linux内核错误的是,Linux编译内核错误
  3. preact源码分析
  4. OpenCV中 cv2.waitKey的使用
  5. Java工程师可以从事哪些工作?
  6. python之多线程并发
  7. c语言用10元20元50元不超过50张,凑够1000元,输出所有换算方式
  8. c#客户端 通过用户名密码访问服务器文件,通过用户名密码验证访问远程共享文件夹 C#...
  9. nginx配置域名访问
  10. 时代在进步。我们的服务永未停止