TCP/UDP协议总结与应用层常见协议及端口
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协议总结与应用层常见协议及端口相关推荐
- 应用层常见协议——知识点
这里总结了三种常见的应用层协议:HTTP.FTP.SMTP.供自己复习使用,也供大家参考! 一.HTTP协议 1.HTTP简介 -超文本传输协议(Hypertext transfer protocol ...
- 应用层常见协议及端口号
在TCP/IP模型中,应用层是最高层.应用层包括所有的高层协议,并且不断有新的协议加入. TCP/IP参考模型中应用层和下层协议之间的关系如下: 应用层的许多协议都是基于(C/S client /se ...
- 一文入门网络编程:常见协议、通信过程、Socket、CS/BS、TCP/UDP
网络编程三要素:ip地址.端口.协议,在网络通信协议下,不同计算机上运行的程序,可以进行数据传输 常见协议: 传输层 常见协议有TCP/UDP协议. 应用层 常见的协议有HTTP协议,FTP协议. 网 ...
- ftp协议是一种用于_______的协议_网络安全常见协议解析:TCP、UDP、HTTP、FTP、SMTP等之间的区别...
了解网络安全行业的都知道,网络安全协议是营造网络安全环境的基础,是构建安全网络的关键技术.常见的网络协议如HTTP协议.TCP/IP协议.FTP协议等. 如果你想进入网安行业,这些协议都是需要重点要学 ...
- 网络协议-网络分层、TCP/UDP、TCP三次握手和四次挥手
网络的五层划分是什么? 应用层,常见协议:HTTP.FTP 传输层,常见协议:TCP.UDP 网络层,常见协议:IP 链路层 物理层 TCP 和 UDP 的区别是什么 TCP/UDP 都属于传输层的协 ...
- 应用协议 tcp udp
运行于TCP协议之上的协议: HTTP协议:超文本传输协议,用于普通浏览 HTTPS协议:安全超文本传输协议,身披SSL外衣的HTTP协议 FTP协议:文件传输协议,用于文件传输 POP3协议:邮局协 ...
- 应用层常见的几种协议
1)HTTP协议(Hyper Text Transfer Protocol,超文本传输协议) 是一种最基本的客户机/服务器的访问协议.浏览器向服务器发送请求,而服务器回应相应的网页,用于从万维网(WW ...
- 网络基础 -- 应用层HTTP协议
目录 应用层(TCP/IP协议中的应用层/HTTP协议) HTTP协议 URL -- 统一资源定位符 UrlEncode / UrlDecode HTTP协议格式 概述 HTTP 请求消息Reques ...
- 又白又菜study:《TCP/IP 详解 :卷1 协议》
Introduction: TCP/IP 协议族能够让电脑之间互相通信: TCP/IP 历史: 起源于20世纪60年代由政府出资研究的项目分组交换网络: 20世纪90年代,演变成计算机之间最广泛使用的 ...
最新文章
- echarts前后端交互数据_SpringBoot2.0实战(26)整合SpringSecurity前后端分离JSON交互...
- 马斯克的星辰大海,还在继续。“月球电梯,我来啦”
- Qt-ros插件:创建工程,编译实现操控小乌龟(二)
- sqlserver安装显示句柄无效_Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法...
- Android自定义view之圆形进度条
- web应用自动化测试的演进
- Spring框架----自动按照类型注入的Autowired注解
- 软件工程导论 07章软件测试
- ubuntu下安装最新 版jre 7
- Android 怎么使用Bitmap+Canvas 自适应屏幕
- Atitit.sql where条件表达式的原理 attilax概括
- 易洁仓库管理 v3.1.125 网络版 官方
- 毕业论文格式(图片题注引用,表格,公式格式)
- 结对编程——自动生成数学试卷的系统(javaswing,mysql)by 陈松刘宇航
- python基础语法和变量
- C盘数据丢失恢复详解和注意事项
- [转]Linux块设备加速缓存bcache和dm-cache:使用SSD来加速服务器
- BLE协议栈学习2——OSAL
- 【软件工程】------软件开发
- 郑州大学本科生毕业论文latex模板