TCP/IP知识总结(TCP/IP协议族读书笔记三)
接下来,总结传输层的两大协议UDP和TCP。
一.UDP(用户数据报协议)
讲UDP之间,先了解两个概念:有连接和无连接。
有连接:通信之前,通信双方必须建立一条通道;
无连接:不需要建立通道,发送方只管发,接收方收不收得到不关心。
而UDP叫做无连接、不可靠的运输协议。除了提供进程到进程(而不是主机到主机)的通信之外,就没给IP服务添加任何东西。此外,它还完成非常有限的差错检验。说完它的缺点,那它的优点呢?UDP是个非常简单的协议,只有最小的开销。不考虑可靠性,发送的消息又很短时,就可以用UDP!
这里又提到两个概念:进程到进程的通信,主机到主机的通信
进程到进程的通信:IP协议将报文交付给目的计算机,这是一种不完整的交付。这个报文必须交到正确的进程。这就是UDP干的。
完成进程到进程的通信有好几种方法,最常用的就是通过客户--服务器范例(C/S)。
在互联网中,主机是用IP来定义自己,而进程就需要用端口号来定义自己:熟知端口(0~1023);注册端口(1024~49151);动态端口(49152~65535)。常见的几个熟知端口7-->echo(把收到的数据回送到发送端);13-->daytime(返回日期和时间);69-->TFTP(简单文件传送协议)。
套接字:网络IP加端口号。
UDP有8个字节的固定首部,格式如下:
差错控制:当接收端使用检验和并检测出差错时,就悄悄的将这个用户数据报丢掉。
二.TCP(传输控制协议)
像UDP一样,TCP也是进程到进程的协议。因此,也使用端口号。与UDP不同的是,TCP是面向链接的协议,两个TCP之间建立一条虚连接(不是物理连接)也是可靠的。此外,TCP在运输层使用流量控制和差错控制机制。格式如下:
控制位:
URG-->紧急指针字段值有效
ACK-->确认字段值有效
PSH-->推送数据
RST-->连接必须复位
SYN-->在连接建立时必须对序号进行同步
FIN-->终止连接
窗口值:这个字段定义对方必须维持的窗口值。注意到这个字段是16位长,因此窗口值的最大长度是65535字节。
接下来,看看TCP在整个通信过程中的时序:
从上图中我们清楚的看出,在连接开始阶段,客户端发送了个一个SYN报文段,报文段中只有SYN标志位被置为1,用来同步序号,消耗一个序号。接下来服务器发送了一个SYN+ACK的报文段,同步自己的初始序号,以便向客户端发送字节。同时发出一个ACK确认报文,表面确认收到来自客户端的SYN报文,并期望客户端继续发送下一个序号。SYN+ACK,不携带数据,消耗一个序号。ACK如果不携带数据,就不消耗序号。
再来看连接关闭阶段的四次握手:从客户端到服务器的收据传送结束了,给服务器发送一个FIN报文段,连接进入半关闭,客户端进入FIN_WAIT状态。这时服务器仍然可以发送数据。当服务器已经把所有处理过的数据都处理完毕后,就发送一个FIN报文段,并且被客户发来的ACK予以确认。
TIME_WAIT:
收到第二个FIN,已发送ACK;等带2MSL超时。可是我们为什么要2MSL的时间进行TIME_WAIT呢?两个理由:1.如果最后一个ACK报文段丢失了,那么服务器TCP以为它的FIN丢失了,如果客户端进入CLOSED状态,并在2MSL计时器超时就关闭了这条连接,那么客户端永远收不到FIN,服务器也就永远收到关闭的ACK。2.前一个连接中的重复报文有可能到达新的连接中,被解释为属于新连接的报文段,为了避免这个问题,就设置为了2MSL的等待时间。
TCP/IP知识总结(TCP/IP协议族读书笔记三)的更多相关文章
- TCP/IP知识总结(TCP/IP协议族读书笔记二)
接下来,总结一下网络层的协议,IP,ARP,RARP,ICMP,IGMP.当我们在网络传输的过程中,把分组交付到主机或路由器需要两级地址:物理地址和逻辑地址.而且我们需要能够把物理地址映射成为相应的逻 ...
- TCP/IP知识总结(TCP/IP协议族读书笔记一)
一.简述TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/互联网互联协议,又名网络通信协议.是Internet最基 ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- 『TCP/IP详解——卷一:协议』读书笔记——07
2013-08-20 17:51:49 第三章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP和IGMP数据都以IP数据报格式传输.再来看一下图 ...
- 『TCP/IP详解——卷一:协议』读书笔记——06
2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限 ...
- 『TCP/IP详解——卷一:协议』读书笔记——03
2013-08-17 17:31:49 1.7 分用 分用(Demultiplexing):这是一个过程——当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议上的报文首 ...
- 《TCP/IP详解 卷1:协议》读书笔记
第一章 概述 协议栈 应用层 HTTP,FTP 运输层 TCP, UDP 段(Segment) 网络层 IP, ICMP, IGMP 数据报(Datagram) 链路层 帧(Frame) 物理 ...
- 『TCP/IP详解——卷一:协议』读书笔记——17
2013-08-27 15:37:42 6.5 ICMP端口不可达差错 端口不可达报文是ICMP差错报文的一种,它是ICMP不可达报文中的一种,以此来看一看ICMP差错报文中所附加的信息.使用UDP来 ...
- 『TCP/IP详解——卷一:协议』读书笔记——15
2013-08-25 13:39:40 第6章 ICMP:Internet控制报文协议 6.1 引言 ICMP经常被认为是IP层的一个组成部分.它传递差错报文以及其他需要注意的信息.ICMP报文同通常 ...
随机推荐
- 【转】每天一个linux命令(21):find命令之xargs
原文网址:http://www.cnblogs.com/peida/archive/2012/11/15/2770888.html 在使用 find命令的-exec选项处理匹配到的文件时, find命 ...
- C#继承基本控件实现自定义控件 (转帖)
自定义控件分三类: 1.复合控件:基本控件组合而成.继承自UserControl 2.扩展控件:继承基本控件,扩展一些属性与事件.比如继承Button 3.自定义控件:直接继承自Control 第一种 ...
- 后台取IE的相关信息
HttpBrowserCapabilities b = Request.Browser; Response.Write("浏览器名称和版本号:" + b.Type + " ...
- ubuntu 14.04 安装Eclipse与配置环境变量
1. 安装JDK 1.1 源码包下载 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/index.html,我下载 ...
- ES(2): Build ES Cluster on Azure VM
目录: 系统环境准备 安装ES集群 安装Kibana 安装x-pack 安装head 系统环境准备 参见: HDP2.4安装(二):Centos7配置 修改network: 修改hosts: 配置ss ...
- c# 多线程排队队列实现的源码
[csharp] view plaincopy using System; using System.Threading; using System.Collections; using System ...
- asp.net如何使用cookie(创建、保存、读取)
Cookie的用法也和ASP中差不多.比如我们建立一个名为aspcn,值为大众的cookie HttpCookie cookie = new HttpCookie("aspcn") ...
- 织梦开启PHP 标签
第一步: dedecms出现DedeCMS Error:Tag disabled:php原因解决 --------------------------------------------------- ...
- Bluez相关的各种tools的使用
7.1 Bccmd Bccmd是用来和CSR的芯片进行BCCMD(Bluecore command protocol)通讯的一个工具.BCCMD并非蓝牙协议栈的标准,而是CSR芯片的专属 ...
- vue 操作数组,原数组怎么不让它改变
vue中肯定遇到过这个问题,想对数组操作,可是原数组又会改变,怎么办呢,提前copy一份能行吗, todo: [1,2,3,4,5], var arr = this.todo: 这样肯定不行的,那么肯 ...