网络复习之TCP

可靠传输的工作原理

1
停止等待协议

每发送完一个分组,就停止发送,等待对方确认。出现差错,超时重传。

1.1 暂时保留已发送的分组的副本

1.2 分组和确认分组必须进行编号

1.3 重传时间比数据在分组传输的平均往返时间更长一些

2
连续ARQ协议(自动重传请求ARQ)

接收方采用累积确认方式,对按顺序到达的最后一个分组发送确认。

滑动窗口

不建议前沿向后收缩

拥塞控制

网络初始设置阈值r,初始网络窗口从1开始指数增加,增加到r时,加法增加。

 
当网络在等于a时发生拥塞后,再次从1开始,指数增加到指数增长(a/2),加法增大...到拥塞(b)循环这个过程。

网络复习之TCP,布布扣,bubuko.com

时间: 2024-10-03 06:56:42

网络复习之TCP的相关文章

网络复习之数据链路层

在OSI体系中,该层位于第二层,从下到上依次: 物理层,数据链路层,网络层,运输层,会话层,表示层,应用层. 在TCP/IP体系中,该层位于第一层,从下到上依次: 网络接口层,网际层,运输层,应用层. 在这层中,涉及到最重要的知识点 1 帧的格式 2 差错检验 3 碰撞检测 4 帧的长度问题 MAC帧的格式 6字节:目的地址 6字节:源地址 2字节:类型 46---1500字节:数据 4字节:冗余码 差错检验 使用CRC循环冗余差错检验 比如,要传送k个比特位,101001(k=6).两遍设定好

java网络编程之TCP实例

Dgram类 package Socket; import java.net.DatagramPacket; import java.net.InetAddress; public class Dgram { public static DatagramPacket toDatagram(String s, InetAddress destIA, int destPort) { byte[] buf = new byte[s.length() + 1]; s.getBytes(0, s.leng

扯谈网络编程之Tcp SYN flood洪水攻击

简介 TCP协议要经过三次握手才能建立连接: (from wiki) 于是出现了对于握手过程进行的攻击.攻击者发送大量的FIN包,服务器回应(SYN+ACK)包,但是攻击者不回应ACK包,这样的话,服务器不知道(SYN+ACK)是否发送成功,默认情况下会重试5次(tcp_syn_retries).这样的话,对于服务器的内存,带宽都有很大的消耗.攻击者如果处于公网,可以伪造IP的话,对于服务器就很难根据IP来判断攻击者,给防护带来很大的困难. 攻与防 攻击者角度 从攻击者的角度来看,有两个地方可以

【网络协议】TCP的拥塞控制机制

前言 计算机网络中的带宽.交换节点中的缓存和处理机等,都是网络的资源,在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这样的情况就叫做拥塞. 所谓拥塞控制,就是防止过多的数据注入到网络中,从而使网络中的路由器或链路不致过载.要注意用拥塞控制与流量控制的差别,拥塞控制是一个全局性的过程,涉及到全部的额主机.路由器,以及与减少网 拥塞控制的算法有:慢開始.拥塞避免.快重传.快恢复四种. 慢開始和拥塞避免 发送方维持一个拥塞窗体的状态变量,其大小取决于网络的拥

【网络协议】TCP中的四大定时器

前言 对于每个TCP连接,TCP一般要管理4个不同的定时器:重传定时器.坚持定时器.保活定时器.2MSL定时器. 重传定时器 非常明显重传定时器是用来计算TCP报文段的超时重传时间的(至于超时重传时间的确定,这里涉及到一大堆的算法,书上有说,我这里不细谈了).每发送一个报文段就会启动重传定时器,假设在定时器时间到后还没收到对该报文段的确认,就重传该报文段,并将重传定时器复位,又一次计算:假设在规定时间内收到了对该报文段的确认,则撤销该报文段的重传定时器. 坚持定时器 上篇文章中已经提到了,主要是

linux网络编程笔记——TCP

1.TCP和UDP TCP是长连接像持续的打电话,UDP是短消息更像是发短信.TCP需要消耗相对较多的资源,但是传输质量有保障,UDP本身是不会考虑传输质量的问题. 2.网络传输内容 我习惯的做法是直接通过TCP传送结构体,当然前提是收发两端都在程序里对目标结构体有充分的定义.特别说明的一点是,要小心收发两端处理器的大小端问题!而且传输信息头里必须包含长度信息,而且通用的是大端.但是,这里的长度和结构体,我选择用小端进行传输. 3.TCPserver实现 参考了别人多线程的回调写法,看起来不错.

linux网络编程之TCP/IP基础篇(一)

从今天起,将会接触到网络编程,平台是linux,实现语言C语言,最后将会实现一个简易的miniftp服务器. 主要的内容安排为:linux网络编程之TCP/IP基础篇,SOCKET编程篇,进程间通信篇,线程篇,实战ftp篇. 1.ISO/OSI参考模型:open system interconnection开放系统互联模型是由OSI(international organization for standardization )国际标准化组织定义的网络分层模型,共七层. 各层的具体含义: 物理层

第12章 网络基础(1)_网络分层和TCP/IP协议族

1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须约定使用共同的"语言",这些被通信各方共同遵守的约定.语言.规则被称为协议 (3)在Internet中,最为通用的网络协议是TCP/IP协议. 2. 网络分层模型 (1)应用层:提供用户接口,特指能够发起网络通信的应用程序,如客户端程序.QQ.MSN.浏览器等,服务器程序有Web服务器.邮

Java网络编程(tcp在服务器上应用多线程)

package org.tcp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class EchoThread implements Runnable { private Socket client = null; public EchoThread(Socket client){ this.c