传输层协议TCP和UDP
本文力图简洁,让读者对TCP和UDP有个初步的认知。闲话少说,现在开始吧。TCP和UDP都是传输层的协议。TCP通过三次握手建立可靠连接,对未送达的消息重新进行发送。UDP不建立连接而直接发送,对未送达的消息不管不顾,因而是不可靠的。
TCP
三次握手
三次握手是发生在建立连接的时候,大致过程是这样的。首先由客户端发起请求,然后服务端对请求进行响应,最后客户端再告知收到响应。具体的过程列在了下面。
>
客户端发送带SYN标志的数据包给对方,告知需要建立连接;>
服务端收到后,回传一个带有SYN/ACK标志的数据包,告知收到建立连接请求;>
客户端回传一个带有ACK标志的数据包,代表握手结束并且建立TCP连接。
四次挥手
四次挥手则是在断开连接的时候,过程如下。
>
客户端发送带FIN标志的数据包给对方,告知需要断开连接;>
服务端收到后,回传一个带有ACK标志的数据包,告知收到断开连接请求;>
服务端再次回传一个带有FIN标志的数据包,告知同意断开连接请求;>
客户端回传一个带有ACK标志的数据包,代表挥手结束并且断开TCP连接。
UDP
UDP没有类似TCP的三次握手机制,而是直接把数据发送出去。因此传输不具备可靠性。但是在网络极差的时候,凭借其不需要三次握手和四次挥手特性,却能高效的把数据传输出去。
词汇
现在把上面出现的词汇分类整理一下吧。
传输协议
- TCP - Transmission Control Protocol - 传输控制协议
- UDP - User Datagram Protocol - 用户数据协议
握手状态
- SYN - synchronous - 建立连接
- ACK - acknowledgement - 确认收到
- 挥手状态
- FIN - final - 关闭连接
参考
这篇文章是我的读书笔记。综合了书中的知识以及参考了百度百科关于四次挥手的解释,总结出了对传输层协议TCP和UDP的浅显认知。其中,词汇的命名参考了园友azraelly的TCP的状态一文。
关于TCP和UDP的应用场景,以及在传输时都带有那些状态和数据,文中都没有提及。改日有时间再专门写一篇这样的文章。
[0] 图解HTTP
- [1] 四次挥手
传输层协议TCP和UDP的更多相关文章
- 浅谈传输层协议TCP和UDP
在当今因特网的层次结构中,传输层的协议主要有两种,其一为Transmission Control Protocol,即TCP:其二为User Datagram Protocol,即UDP. 1.TCP ...
- TCP/IP中的传输层协议TCP、UDP
TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请 ...
- 常用传输层协议(tcp/ip+udp)与常用应用层协议简述(http)
一.计算机网络体系结构 二.TCP与UDP差异 1.TCP是面向连接的可靠传输,UDP是面向无连接的不可靠传输 面向连接表现在3次握手,4次挥手:可靠传输表现在未进行4次挥手时的差错重传,超时重传: ...
- 传输层协议TCP和UDP分析
分析所用软件下载:Wireshark-win32-1.10.2.exe 阅读导览 1. 分析应用TCP协议,以及TCP链接管理 2. 分析应用UDP协议 分析要求 (1)TCP部分: 学习3CDaem ...
- UNIX网络编程---传输层:TCP、UDP、SCTP(二)
UNIX网络编程----传输层:TCP.UDP.SCTP 一.概述 本章的焦点是传输层:包括TCP.UDP.和SCTP(流控制传输协议).SCTP是一个较新的协议,最初设计用于跨因特网传输电话信令. ...
- 数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点
上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Contr ...
- 传输层的TCP和UDP协议
作者:HerryLo 原文永久链接: https://github.com/AttemptWeb... TCP/IP协议, 你一定常常听到,其中TCP(Transmission Control Pro ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
- [转帖]技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解
技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解 http://www.52im.net/thread-1309-1-1.html 本文来自腾讯资深研发工程师罗成的技术分享, ...
随机推荐
- C# 删除字符串中的中文
/// <summary> /// 删除字符串中的中文 /// </summary> public static string Delete中文(string str) { s ...
- .Net调用R语言
///加载自己写的R语言算法库 public List<double> GetZTFB(double[] data) { List<double> par = new List ...
- 常用html、CSS、javascript前端命名规范
无论是从技术角度还是开发视角,对于web前端开发规范文档都有一定规范,本文就css3和html5的发展前景总结了一系列的web开发文档,仅供大家参考. 规范目的: 为提高团队协作效率, 便于后台人员添 ...
- php怎么获取input输入框中的值去数据库比较显示出来
前端: <!--商品查询--> <input type="text" name="bianhao" value="" ma ...
- Java--正则表达式-简单的在字符串中找数字
import org.junit.Test; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ...
- No.007:Reverse Integer
问题: Reverse digits of an integer.Example1:x = 123, return 321Example2:x = -123, return -321 官方难度: Ea ...
- 安卓模拟器genymotion连接eclipse成功但是不显示其中项目
安卓模拟器困了我两三天了,原装模拟器比较慢,忍受不了,查到安卓模拟器的神器——genymotion 按照网上的步骤一步步都安装完毕,最后打开后发现,genymotion界面里面没有找到新建的工程, 这 ...
- BuilderParttern(建造者模式)
/** * 建造者模式 * 主要用于构造复杂的对象 * 在优朋播放器就是采用建造者构建的,可以说比较有心得吧 * @author TMAC-J * */ public class BuilderPat ...
- JS效果集锦
秒后消失 $('.success_message').text( '反馈成功' ); setTimeout(function(){ $( ".success_messa ...
- 第一个随笔,调试中,用的CSS3
希望能在博客园很好的学习并得到技术上的提升!