TCP/IP协议
文章平均质量分 66
介绍在网络通信过程中涉及到的主要传输协议,分析网络传输的实现基理,更加深入理解TCP/IP。
m_buddy
大表哥,还有大招吗... PS:本人所有文章均免费公开,任何收费条目请咨询平台
展开
-
浏览器中网址访问过程详解
浏览器中网址访问过程详解前言当我们在浏览器中输入一个网址,比如www.google.cn,浏览器就会加载出百度的主页。那么浏览器背后完成的具体是怎么样的呢? 总结起来大概的流程是这样的: (1)浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP (2)然后通过IP地址找到IP对应的服务器后,要求建立TCP连接 (3)浏览器发送完H原创 2017-09-02 14:21:55 · 51547 阅读 · 21 评论 -
数据包在网络中漫游的经历
数据包在网络中漫游的经历在网络分层结构中,各层之间是严格单向依赖的。“服务”是描述各层之间关系的抽象概念,即网络中各层向紧邻上层提供的一组操作。下层是服务提供者, 上层是请求服务的用户。服务的表现形式是原语(primitive),如系统调用或库函数。系统调用是操作系统内核向网络应用程序或高层协议提供的服务原 语。网络中的n层总要向n+1层提供比n-1层更完备的服务,否则n层就没有存在的价值。 传输原创 2017-09-02 14:27:55 · 1813 阅读 · 0 评论 -
TCP的拥塞控制
1. 网络拥塞1.1. 拥塞控制的原理概念:在某段时间,若对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变化,这种情况叫做拥塞。网络拥塞往往是由许多因素引起的,简单的提高节点处理机的速度或者扩大结点缓存的存储空间并不能解决拥塞问题。例如当某个结点缓存容量扩展到非常大,于是凡到达该结点的分组均可在结点的缓存队列中排队,不受任何限制。由于输出链路的容量和处理机的速度原创 2017-08-21 17:06:16 · 728 阅读 · 0 评论 -
TCP粘包问题
1. TCP包粘包问题的原因主机A向主机B发送两个数据包,主机B的接收情况可能是产生粘包问题的原因有以下几个:(1)应用层调用write方法,将应用层的缓冲区中的数据拷贝到套接字的发送缓冲区。而发送缓冲区有一个SO_SNDBUF的限制,如果应用层的缓冲区数据大小大于套接字发送缓冲区的大小,则数据需要进行多次的发送。(2)TCP所传输的报文段有MSS的限制,如果套接字缓冲区的原创 2017-08-21 17:19:06 · 639 阅读 · 0 评论 -
TCP同时打开和同时关闭
1. 同时打开两个应用程序同时彼此执行主动打开的情况是可能的,尽管发生的可能性极小。每一方必须发送一个SYN,且这些SYN必须传递给对方。这需要每一方使用一个对方熟知的端口最为本地端口。当出现同时打开的情况时,状态迁移图就与标准的连接状态迁移图不一样了。两端几乎同时发送SYN并进入SYN_SENT状态。当每一端收到SYN时,状态变为SYN_RCVD,同时它们都再发SYN并对收到的SYN进行原创 2017-07-04 16:41:25 · 2566 阅读 · 1 评论 -
TCP半工作模式
TCP连接有两种场景分别是半打开(Half-Open)连接和半关闭(Half-Close)连接。TCP是一个全双工(Full-Duplex)协议,因此这里的半连接"半"字就是相对于全双工的"全"来说的。1. 半开连接从协议定义的角度来说,TCP的半开连接是指TCP连接的一端异常崩溃,或者在未通知对端的情况下关闭连接,这种情况下不可以正常收发数据,否则会产生RST(后面内容我们在介绍RS原创 2017-07-04 16:44:55 · 1228 阅读 · 0 评论 -
TCP连接建立与结束(三次握手与4次挥手)
1. 概述TCP的连接建立需要进行三次的数据交互,在结束时需要进行4次的数据交互,具体的流程图如下图所示注意Seq:是发送方当前报文的顺序号码ack:是发送方期望对方在下次返回报文中给回的Seq2. 连接建立与结束2.1 连接建立建立连接需要进行三次数据传输,也就是三次握手第一次握手:客户端向服务端发送连接请求包,标志位SYN(同步序号)置为1,顺序号码原创 2017-07-04 16:57:50 · 1008 阅读 · 0 评论 -
TCP 窗口协议
这里使用可视化展现窗口协议在上面这个图中,我们将字节从1至11进行标号。接收方通告的窗口称为提出的窗口(offered window),它覆盖了从第4字节到第9字节的区域,表明接收方已经确认了包括第3字节在内的数据,且通告窗口大小为6。由于窗口大小是与确认序号相对应的。发送方计算它的可用窗口,该窗口表明多少数据可以立即被发送。当接收方确认数据后,这个滑动窗口不时地向右移动。窗口两个原创 2017-07-04 17:02:29 · 798 阅读 · 0 评论 -
TCP 的超时与重传
1. TCP的管理定时器TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传该数据。对任何实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。对每个连接,TCP管理4个不同的定时器。1) 重传定时器:使用于当希望收到另一端的原创 2017-07-04 17:13:29 · 2103 阅读 · 1 评论 -
网络协议概述
这篇文章主要描述TCP/IP模型和OSI标准模型之间的关系,首先看一下在一端的应用层给另外一端的应用层发送数据,需要经过的模型层。如下图所示这张图展示了应用层数据之间传输的流程。标准的OSI模型和TCP/IP模型之间的对应关系和相关的协议是这样的下面将对TCP/IP中的层做介绍:对于TCP/IP中的各个模型的解释是这样的(1)物理层所谓的物理层,是指光纤、电原创 2017-07-03 11:12:14 · 1094 阅读 · 0 评论 -
ARP 地址解析协议
1. ARP协议在网络通信中,每一台主机和路由都能了解局域网内的IP地址和MAC地址的对应关系,这是实现IP包封装(encapsulation)到帧的基本条件。IP地址与MAC地址的对应是通过ARP协议传播到局域网的每个主机和路由。每一台主机或路由中都有一个ARP cache,用以存储局域网内IP地址和MAC地址如何对应。ARP协议(ARP介于连接层和网络层之间,ARP包需要包裹在一个原创 2017-07-03 14:36:47 · 652 阅读 · 0 评论 -
IP数据报格式详解
1. IP数据报报文格式由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首都中的源地址和目的地址都是 IP 协议地址。2. 相关字段详解①版本:占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。日前广泛使用的 IP协议版本号为 4 (即 IPv4)。IPv6 目前原创 2017-07-03 16:38:14 · 5756 阅读 · 0 评论 -
CRC校验原理
1. CRC校验原理CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项式形式来说明的。其实很简单的问题,其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而转载 2017-07-03 18:05:31 · 479 阅读 · 0 评论 -
UDP:用户数据报协议
UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数据域真正发送的单个IP数据报可能没有什么联系。下图是将UDP报文封装成为一份IP数据报的格式UDP首部(8字节)格式:UDP检验和覆盖UDP首部和UDP数据。回想IP首部的检验和,他只是覆原创 2017-07-03 18:11:13 · 531 阅读 · 0 评论 -
TCP:传输控制协议
TCP被誉为是可靠的数据传输协议,它是通过下面的方式来提供可靠性的:(1)应用数据被分割成TCP认为最合适发送的数据块。这和UDP完全不同。应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段。(2)当TCP发出一个端之后,它启动一个定时器,等待目的端确认接收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。(3)当TCP接收到发自TCP连接另一端的数原创 2017-07-03 18:17:54 · 598 阅读 · 0 评论