传输层协议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 本文来自腾讯资深研发工程师罗成的技术分享, ...
随机推荐
- python征程1.4(初识python)
1.列表解析. (1)这是一个,让人听起来十分欣喜的术语,代表着你可以通过一个循环将所有值放到一个列表中.python列表解析属于python的迭代中的一种,相比python for循环速度会快很多. ...
- 如何在MAC OS X下安装配置java开发工具
简介: Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语 ...
- 从零开始学 Java - CentOS 安装 JDK
我来总结一下吧 昨天我写了一篇从零开始学 Java - 我放弃了 .NET ?,在园子里突然引起了强烈的讨论,有期待我能持续更新的.有鼓励支持的.有相同经历的.也有同一个学校的师兄弟(我们相认了).当 ...
- [翻译]写给精明Java开发者的测试技巧
我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从 “当然,但你知道怎样才能避免写测试吗?” 到 “必须的!我爱测试”都有.接下来我会给你几个小建议,它们可以让你编写测试变得 ...
- ABP 初探 之 多语言
最近几天空闲时间比较多,就研究Abp的多语言,Abp是基于接口的依赖注入,有很多思想与方法都很好,需自己深入体会与应用,转化成自己的思想应用于实践. 本篇介绍基于 开源Demo ModuleZeroS ...
- jQuery实现选项联动轮播
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 钉钉js依赖库学习
看别人用的依赖库的好处在于,你知道有什么可以用,什么可以借鉴.(钉钉——协作桌面应用) PS:人最怕是不知道,而不是你不会. 1. jQuery 钉钉使用了1.9.1版本的jQuery,jQuery作 ...
- 四步让你的网站秒开,wordpress框架为例子,其他框架道理类似
我这里以wordpress框架制作的网站为例子,效果可以看看我的网站,香港的垃圾主机199一年2M带宽,速度也能秒开,不信试试效果33小游戏 我的是wordpress制作的网站,大家都知道WP各种臃肿 ...
- JavaScript 变量
一,JavaScript 变量(存储信息的容器) 与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y). 变量可以使用短名称(比如 x 和 y),也可以使用描 ...
- SharePoint 2013 网站搜索规则的使用示例
前言 SharePoint 2013搜索中,有一个非常好用的细化搜索结果的功能,就是“查询规则”.可以通过对于某些特定查询时,起到细化显示结果的作用.下面,我们简单的介绍一下该功能的使用和效果. 1. ...