一:概述 - 由于 IP 的传输是无状态的,IP 提供尽力服务,但并不保证数据可以到达主机. - 所以,数据的完整性需要更上层的 传输层来保证.TCP和UDP 均属于 传输层. 二:UDP - 特点 - 不具有可靠性的数据报协议. - UDP 虽然可以确定发送消息的大小,却不能保证消息的到达. - 应用场景 - 即时通讯 - 包总量较少通讯 - 广播通信 三:TCP - 特点 - 面向连接的,可靠的流协议. - 流即为不间断的数据结构,虽然可以保证发送的顺序,但是还是犹如没有任何间隔的发送给服务…
1)滑动窗口机制,确立收发的边界,能让发送方知道已经发送了多少(已确认).尚未确认的字节数.尚待发送的字节数:让接收方知道(已经确认收到的字节数) 2) 超时重传,tcp每发送一个报文段,就设置一次计时器,重传时间到但还没收到确认,就重传这一报文段,这个时间是加权平均的往返时间 3)选择重传,用于对传输出错的序列进行重传,如果中间有顺序的包丢了,接收窗口发送确认号的时候,会发丢之前的ack号,选择重发的包序号,选择确认…
1.连接建立=>数据传输=>连接释放 2.主动发起连接的是客户端,被动接受连接的是服务器 3.三次握手 客户端 ==> SYN是1同步 ,ACK确认标志是0,seq序号是x ==> 服务器 客户端 <== SYN是1同步 ,ACK确认标志是1,seq序号是y,ack确认号是x+1 <==服务器 客户端 ==> ACK确认标志是1,seq序号是x+1,ack确认号是y+1 ==>服务器 4.为什么需要第三次握手再次确认,因为服务器需要确认客户端收到我的回复 5…
概述 总结一下TCP中3次握手过程,以及其原生的缺陷 引起的SYN Flood的介绍 1.TCP连接建立--三次握手 几个概念: seq:序号,占4个字节,范围[0,4284967296],由于TCP是面向字节流的,在 一个1个TCP连接中传送字节流中国的每一个字节都按照顺序编号,此外序号是循环使用的 ACK: 仅当ACK=1时确认字段才有效,当ACK=0时确认字段无效,并且TCP规定,在连接建立后所有的传送报文段都必须要把ACK置为1 SYN:同步序列号,用来发起一个连接.当SYN=1而ACK…
TCP流和UDP数据报之间的区别 1.TCP本身是面向连接的协议,S和C之间要使用TCP,必须先建立连接,数据就在该连接上流动,可以是双向的,没有边界.所以叫数据流 ,占系统资源多 2.UDP不是面向连接的,不存在建立连接,释放连接,每个数据包都是独立的包,有边界,一般不会合并. 3.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证 UDP使用场景 1.需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用.如DHCP协议就是基于UDP的.一般的获取IP地址都是内网请…
流量控制:数据的传送与接收过程当中很可能出现收方来不及接收的情况,这时就需要对发方进行控制,以免数据丢失.流量控制用于防止在端口阻塞的情况下丢帧,这种方法是当发送或接收缓冲区开始溢出时通过将阻塞信号发送回源地址实现的.流量控制可以有效的防止由于网络中瞬间的大量数据对网络带来的冲击,保证用户网络高效而稳定的运行. 1.通信双方主机上都分别有一个“发送窗口”和一个“接受窗口”2.TCP连接阶段,双方协商窗口尺寸3.发送方根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认,等待确认机制4.…
linux内核中会维护两个队列:  1)未完成队列:接收到一个SYN建立连接请求,处于SYN_RCVD状态  2)已完成队列:已完成TCP三次握手过程,处于ESTABLISHED状态  3)当有一个SYN到来请求建立连接时,就在未完成队列中新建一项.当三次握手过程完成后,就将套接口从未完成队列移动到已完成队列.  4)backlog曾被定义为两个队列的总和的最大值,Berkely实现中的backlog值为上面两队列之和再乘以1.5. 5)如果当客户端SYN到达的时候队列已满,TCP将会忽略后续到…
MTU:最大传输单元,以太网的MTU为1500Bytes MSS:最大分解大小,为每次TCP数据包每次传输的最大数据的分段大小,由发送端通知接收端,发送大于MTU就会被分片 TCP最小数据长度为1460Bytes 这个跟具体传输网络有关,以太网的MTU为1500字节,Internet的MTU为576字节. MTU是网络层的传输单元,那么MSS = MTU - 20字节(IP首部) - 20字节(TCP首部).所以以太网的MSS为1460字节,而Internet的MSS为536字节. TCP最大负…
TCP 是支持全双工通信的传输层协议,为了开发出更好的网络通信应用,清楚了解其中的交互过程是非常必要的. 下面用比较直白的话来描述&理解一下这个过程: TCP 连接建立:三次握手 服务器依次调用 socket,bind,linsten 绑定到指定本机地址,accept 阻塞等待连接. 1. 客户端调用 socket 指定本地/网络地址,connect 主动建立连接,向服务器发送 SYN 同步请求,并标记该连接通道传送数据的初始序号为 J . 2. 服务器收到 SYN 请求后,响应 ACK(ack…
TCP服务端accept发生在三次握手之后 客户端socket()==>connect()==>write()==>read()服务端socket()==>bind()==>listen()==>accept()==>read()==>write() 1.accept过程发生在三次握手之后2.在调用listen函数之后,一个socket会从主动连接的套接字变为listen 套接字,accept后listen套接字变成连接套接字,listen继续接收更多连接3…
1.源端口和目的端口:各占2个字节,分别写入源端口和目的端口: 2.序列号:占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号.例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始: 3.确认号:占4个字节,是期望收到对方下一个报文的第一个数据字节的序号.例如,B收到了A发送过来的报文,其序列号字段是501,而数据长度是200字节,这表明B正确的收到了A发送的到序号700为止的数据.因此,B期望收到A的下一个数据…
1.数据包校验,发送方计算校验和,接收方结算校验和,进行对比2.应答机制,seq序列号与ack确认号 3.超时重传机制,发送后启动定时器,进行重传 4.连接管理,三次和四次5.对失序数据包重排序6.流量控制和拥塞控制,使用滑动窗口协商大小…
三次握手 客户端 ==> SYN是1同步 ,ACK确认标志是0,seq序号是x ==> 服务器 客户端 <== SYN是1同步 ,ACK确认标志是1,seq序号是y,ack确认号是x+1 <==服务器 客户端 ==> ACK确认标志是1,seq序号是x+1,ack确认号是y+1 ==>服务器 server端发送了SYN+ACK报文后就会启动一个定时器,等待client返回的ACK报文.如果第三次握手失败的话client给server返回了ACK报文,server并不能收…
1.建立连接的时候, 服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端. 2.而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次.…
读书笔记——<图解TCP/IP>(1/4) 经典摘抄 第一章 网络基础知识 1.独立模式:计算机未连接到网络,各自独立使用的方式. 2.广域网 WAN 局域网 LAN 城域网 MAN 3.计算机发展的7个阶段 批处理系统:实现将用户程序和数据装入卡带或磁带,并由计算机按照一定的顺序读取,使用户所要执行的这些程序和数据能够一并批量得到处理的方式.批处理时代的计算机主要用于大规模计算或处理. 分时系统:重要特性——独占性.BASIC是关注分时系统的初学者们必学的一门开发语言. 计算机之间的通信:计…
前言 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API).那TCP/IP又是什么呢?TCP/IP是ISO/OSI的浓缩版本,那ISO/OSI又是什么呢...接下来我们就进入枯燥的理论篇吧 先说一下,关于这几个概念特别是TCP/IP和HTTP,讲解它们的书,随便拿出一本都厚到可以砸死人,所以本文仅仅是浅显的概括一下,并且还有很多的概念我都不太明白,先做个记录吧等后续有深入的机会再回来.也希望有朋友能在留言中指…
作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI参考模型各个层次的划分遵循下列原则:1)根据不同层次的抽象分层2)每层应当有一个定义明确的功能3)每层功能的选择应该有助于制定网络协议的国际标准.4)各层边界的选择应尽量节省跨过接口的通信量.5)层数应足够多,以避免不同的功能混杂在同一层中,但也…
 reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190309.html 作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI参考模型各个层次的划分遵循下…
ISP(Internet Service Provider) 互联网服务提供商, 即向广大用户综合提供互联网接入业务.信息业务.和增值业务的电信运营商. 通过wireshark学习tcp/ip. 用wireshark抓包,发现包传送过程. 也就是说在服务器那边这些东西(服务器客户端ip地址端口)也是知道的. tcp/ip tcp的首部 ip的首部 http://docs.linuxtone.org/ebooks/C&CPP/c/ch36s01.html TCP/IP协议栈与数据包封装 TCP/I…
原文地址 http://blog.csdn.net/whuslei/article/details/6667471 http://blog.csdn.net/wo2niliye/article/details/48447933 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向Server段发生ACK报文,并…
OSI七层模型 OSI采用了分层的结构化技术,共分七层,物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP模型 OSI模型比较复杂且学术化,所以我们实际使用的TCP/IP模型,共分4层,链路层.网络层.传输层.应用层.两个模型之间的对应关系如图所示: TCP/IP协议族 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,是Internet最基本的协议.Internet国际互联网络的基…
OSI参考模型 协议分层 为什么需要分层? 简化网络协议. 每一层只需要衔接上下层的服务. 利于模块化开发. 解耦. 分层的问题 过分模块化.提高数据处理的开销. OSI参考模型 作用及意义 将复杂的通信协议整理为7个容易理解的层次. 对通信中的必要功能做了归纳. 没有详细定义协议和接口,只是规定了各个层的大致功能. ps:OSI参考模型和OSI协议的区别.OSI协议是让异构的计算机之间能够通信.由OSI推进的一种网络体系结构.二者不能混淆. 各个分层的作用 物理层 :硬件层面上对信号的规定.…
TCP/IP TCP/IP 意味着 TCP 和 IP 在一起协同工作. TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信. IP 负责计算机之间的通信. TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们. IP 负责将包发送至接受者. 一.网络层中的 IP 协议 IP(IPv4.IPv6)相当于 OSI 参考模型中的第3层--网络层.网络层的主要作用是"实现终端节点之间的通信".这种终端节点之间的通信也叫"点对点通信". 网络的下一…
Mallory   网络模型概念浅析 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型. #只是一种设计==模型# Open System Interconnect的缩写,意为开放式系统互联. 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型.该体系结构标准定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层和应用层),即ISO开放系统互连参考模型.在这一框架下进一步详细规定了每一层的功能,以实现开放系统环境中的互连性.互操…
上回,主要介绍了下协议和OSI参考模型,并简单了解下网络构成要素,这回该说说TCP/IP了 互联网与TCP/IP的关系   互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为使用互联网而开发定制的协议族.因此,互联网的协议就是TCP/IP,TCP/IP就是互联网的协议.   知道了解TCP/IP的重要性了吧,那就好好看看吧 TCP/IP的诞生 TCP/IP的标准化   20世纪90年代,ISO开展了OSI这一国际标准协议的标准化进程.然而OSI协议并没有得到普及,真正被广泛使用的是TC…
转自:http://www.js123.net/t/n/n/2013/4/28/n_272.shtml 这篇介绍的也很棒:http://www.cnblogs.com/rootq/articles/1377355.html 新闻 TCP/IP三次握手原理 本文主要讲述的是 1.面试官在问到TCP/IP三次握手原理,以及为什么要三次握手,两次握手带来的不利后果. 2.面试官问TCP/IP四次挥手原理,为什么要四次挥手. TCP/IP三次握手原理: 首先,给张图片,建立TCP/IP三次握手的直观印象…
网络协议: TCP/IP 和UDP/IP TCP/IP TCP/IP(Transmission Control Protocol/Internet Protocol)是一种可靠的网络数据传输控制协议.定义了主机如何连入因特网以及数据如何在他们之间传输的标准. TCP/IP协议参考模型把所有TCP/IP系列协议归类到四个抽象层中: 每一个抽象层建立在低一层提供的服务上,并且为高一层提供服务 ICMP:控制报文协议 IGMP:internet组管理协议 ARP:地址解析协议 RARP:反向地址转化协…
TCP/IP 是用于因特网 (Internet) 的通信协议. 计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述. 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的通信协议. TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol). TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准. 在 TCP/IP 内部 在 TCP/IP 中包含…
TCP/IP 是因特网的通信协议. 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. 浏览器和服务器都在使用 TCP/IP 因特网浏览器和因特网服务器均使用 TCP/IP 来连接因特网.浏览器使用 TCP/IP 来访问因特网服务器,服务器使用 TCP/IP 向浏览器传回 HTML. 电子邮件也使用 TCP/IP 电子邮件程序使用 TCP/IP 来连接因特网,这样才能收发邮件. 因特网地址也是 TCP/IP 你的因特网地址 117.132.73.13 也是标准的 …
用了近二十天的时间,把一本800页的书看完,感觉收获还是很大的.对网络,对这些协议有了深刻的认识! 知道了路由器与交换机的区别. 知道了IP地址的特点. 知道了网络的分层,物理层,数据链路层,网络层,传输层,应用层. 知道了各个层的协议. 知道了数据传输的特点,比特,帧,数据报,报文段,报文. 知道了文件传输协议FTP. 知道了远程连接SSH. 知道了UDP协议是一种非面向连接的协议. 知道了报文的格式. 知道了TCP/IP协议是很多协议的组合. 知道了协议也是程序. 知道了很多很多.开始时读的…