[Network]Transport Layer
1 Principles behind Transport Layer Services
1.1 Multiplexing/Demultiplexing
Multiplexing at sender side, Demultiplexing at receiver side.
How DemultiplexingIndex with: IP + Port num
This part indicates that transport layer processes data with multiplexing, which function the multiple processes communicate in the network simultaneously without critical collisions.Now we can actually go in to UDP, but I'd like to put the principles in one section. Other Principles below are more relative withTCP.
1.2 Reliable Data Transfer
Reliability is one of the most important problem of Network. And it is obvious that there is no absolute reliability, though we are trying to find a more reliable way for data transmitting.So, most of the implementation of reliable data transferring is built on unreliable data transferring. It is an altitude to make it more reliable.
1. rdt1.0: reliable transfer over a reliable channel
It seems to be an ideal version of rdt.
2. rdt2.0: channel with bit errors
use checksum to detect errors: stop-and-waitACK: receiver tells sender that the pkt OKNAK: receiver tells sender that the pkt BAD, and sender retransmitSo the rdt adds error detection and
receiver feedback
a fatal flaw: if ACK and NAK corrupt or duplicate.
3. rdt2.1: sequence number
Here are just two num 0 and 1.Sender must get the ACK/NAK before moving to next state.Receiver must check if the pkt is duplicate, here num 0 and 1.But the receiver can not know if the last ACK/NAK received OK at sender.
4. rdt2.2: a NAK-free protocol
Mostly same with rdt2.1 except without NAK1) receiver send ACK for last pkt received OK2) duplicate ACK at sender results in same action as NAK
5. rdt3.0: channel with errors and loss
new assumption: channel can lose pkts.Sender wait amount of time for ACK. timeout->retransmit->multiple pkt, receiver must detect.
6. Pipeling
There are two types of pipeling protocols:
1) Go-back-NSenderThere is N size window:
Timer for each pkt, timeout to retransmit. And the sender expects to get the pkt[nextseqnum].Receiver:Only send ACK for correctly-received pkt with highest sequence number - pkt[expectedseqnum].If receiving out-of-order pkt,discard,re-ACK with highest in-order sequence number.
2) Selective Repeat:It promote some disadvantages of GBN of discarding the disorderred pkts. It buffers the pkts and move the windows until the lowerbound is ACKed(sender) or received(received)
1.3 Flow Control (talked in TCP)
1.4 Congestion Control
This is different from flow control. Congestion is said that too many sources sending much data too fast fornetwork to handle(but flow control is said to send and receiver).There are several ways to congestion control, end systems lead(TCP) or network lead. I just want detail the congestion control in TCP below.
2 Transport Layer Protocols
2.1 UDP
1. Properties
1) connectionless: simple, small header, no congestion control
2) lost, deliver out of order
2. Checksum
An example
3. Segment Format
2.2 TCP
1. overview
end-to-endreliable, in-orderpipelinedata: MSSconnectionflow control
2. RTT and Time out
1) RTT
2) Time outtimeout = RTT + safety margina. margin
b. timeout
3. rdt
sender
ACK received: update the Sendbase to ACK=ytime out: send with smallest sequence numberreceiver
a. Formal: delay ACK
b. Higher than expected sequence: duplicated ACK of expected sequence
c. fill gaps: ACK of sequence at lower end of gap.
4. Retransmit
With the discussion above, if loss happens, there will likely be many duplicate ACKs. So sender will detect loss and begin tofast retransmit
Fast retransmit: resend segment before timer expire
5. Flow control
sender will not overflow the buffer of receiver.
Get the point above, sender limits unACKed data smaller thanspare room of receiver.
6. Connection Management
a. initiation work
seq num
flow control, buffer, rcvwindow
b. three way handshake
build:
1) client->server: SYN, initial seq num
2) server->client: SYNACK segment, server allocate buffers, specify initial seq num
3) client->server: reply ACK segment, may with data
close:
1) client->server: FIN
2) server->client: ACK first, after closing connection, send FIN
3) client->server: ACK
4) server: get ACK close.
7. Congestion control
To sum up the details of congestion control in TCP is that: send windows vary with the condition of congestion in the network. If the network is congested, the send will decrease the window size. If not the window will be enlarged. So the intension of sending
is according to the network condition.
How sender perceive congestion:
1) loss event: time out or 3 duplicate ACKs
Slow start
1) when connection begins, CongWin = 1 MSS
2) CongWin increase exponentially until loss event.
Loss
1) 3 dup ACKs:
Reno: CongWin half, win grow linear -- 3 dup ACKs indicate the network capable of delivering some segments.
Tahoe: same with time out
2) timeout: CongWin set to 1 MSS, win grow exponentially to a threshold then linearly. -- timeout is a more alarming condition
End.
[Network]Transport Layer的更多相关文章
- Transport layer and Network layer
http://stackoverflow.com/questions/13333794/networking-difference-between-transport-layer-and-networ ...
- [Network]Application Layer
1 Principles of Network Applications 1.1 Application Architectures Client-Server Peer-to-Peer Hybird ...
- Transport Layer Protocols
1 End-to-end Protocols(端到端协议) 传输层协议往往是主机对主机(host-to-host)或者说是端到端(end-to-end).通常希望传输层协议可以提供如下service: ...
- Host Controller transport layer and AMPs
The logical Host Controller Interface does not consider multiplexing/routing over the Host Controlle ...
- 传输层-Transport Layer(上):传输层的功能、三次握手与四次握手、最大-最小公平、AIMD加法递增乘法递减
第六章 传输层-Transport Layer(上) 6.1传输层概述 在之前的几章内容中,我们自底向上的描述了计算机网络的各个层次,还描述了一些处于不同层次下的经典网络协议(如以太网.无线局域网.或 ...
- 传输层-Transport Layer(下):UDP与TCP报头解析、TCP滑动窗口、TCP拥塞控制详解
第六章 传输层-Transport Layer(下) 上一篇文章对传输层的寻址方式.功能.以及流量控制方法做了简短的介绍,这一部分将介绍传输层最重要的两个实例:TCP协议和UDP协议,看一看之前描述的 ...
- Elasticsearch client node 启动时出现警告:exception caught on transport layer 及java.net.NoRouteToHostException: No route to host
发现该问题源自发现kibana不能打开sense,并且看见elasticsearch插件处于服务不可用状态,但是在client node上curl localhost:9200发现能够返回ES基本信息 ...
- 计算机网络自顶向下方法第3章-传输层 (Transport Layer).1
3.1 概述和运输层服务 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信(logic communication)功能. 3.1.1 运输层和网络层的关系 网络层提供了主机之间的逻辑通信,而 ...
- 计算机网络自顶向下方法第3章-传输层 (Transport Layer).2
3.5 面向连接的运输: TCP 3.5.1 TCP连接 TCP是因特网运输层的面向连接的可靠的运输协议. TCP连接提供全双工服务(full-duplex service). TCP连接是点对点的连 ...
随机推荐
- Jquery清除:hover事件
$("#hover_div").unbind("mouseenter").unbind("mouseleave"); 可用于div按钮,造成 ...
- C++ Primer笔记10_运算符重载_赋值运算符_进入/输出操作符
1.颂值运营商 首先来福值运算符引入后面要说的运算符重载.上一节说了构造函数.拷贝构造函数:一个类要想进行更好的控制.须要定义自己的构造函数.拷贝构造函数.析构函数.当然,还有赋值运算符.常说的三大函 ...
- Automatically generate serial number in abap
流水号的产生: 在ABAP开发中,很多地方都需要按照自己的规则生成流水号,把这些流水号保存进透明表,作为唯一标示. 一. 系统中设定流水号 使用T-Code SNRO来创建一个流水号标识对象. 输 ...
- ACdream原创群赛(18)のAK's dream题解
只做了4题水题ADGI A题需要注意的就是“[...]”的输出了,何时输出,何时不输出. #include <stdio.h> int main() { int n, cur, d; ; ...
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第一步--- 开始界面
说明:这里是平局:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
- ubuntu12.04 安装和配置jdk1.7
第一步:下载jdk-7-linux-i586.tar.gz wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586 ...
- Windows下一个JSP环境配置
一.首先安装JDK 门户: http://write.blog.csdn.net/postedit/39999433 二.安装Myeclipse 事实上也能够安装eclipse然后再安装Myeclip ...
- Android适应方案汇总(三)
在Android适应方案汇总(一个).(两)在.我们理解一些基本概念. 那么详细的开发,我们应该重视起来. 首先,我们需要知道.关键的事实是,这两个适配器: (1).这点在单位的使用上用dp.sp以及 ...
- 透过浏览器看HTTP缓存(转)
作为前端开发人员,对于我们的站点或应用的缓存机制我们能做的似乎不多,但这些却是与我们关注的性能息息相关的部分,站点没有做任何缓存机制,我们的页面可能会因为资源的下载和渲染变得很慢,但大家都知道去找前端 ...
- 微软最牛MS08-067漏洞各系统补丁下载地址
本次MS08-067严重漏洞各系统补丁地址例如以下: 中文操作系统KB958644补丁下载地址: Windows Vista 安全更新程序 (KB958644) http://download.mic ...