第六章传输层
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主动打开(客户端)
int connect(int socket, struct sockaddr *addr, int addr_len)
收发数据
int send(int socket, char *msg, int mlen, int flags) int recv(int socket, char *buf, int blen, int flags)
第六章 传输层
h
1
网络层将分组从源端沿着网络路径送达目 的端。然而未必能保证主机间的可靠通信。
如果分组丢失或出错怎么办?
网络层可能是不可靠的 IP报文只校验首部
如果中间网络出现问题怎么办?
用户对路由器没有控制权
不同网络的网络层服务原语不同 应该将收到的数据交给哪个高层应用?
需要在网络层之上引入新的层次以弥补网
络层的不足,使得网络的传输服务更加可 靠(对应用层而言)
h
2
传输服务 使用者
应用层
传输服务 提供者
传输层 网络层
链路层
物理层
网络层
网络层
链路层
链路层
物理层
物理层
h
应用层 端到端协议
传输层 具备端到端和 点到点协议的 特点
网络层
点到点协议 链路层
物理层
3
传输层存在的意义
在不可靠的网络层上可以提供从源端主机到目的 端主机的可靠传输服务。
这一问题在数据链路层不会出现
建立连接时需要考虑的问题:
老的控制TPDU延迟到达错误的连接 老的数据TPDU延迟到达错误的数据
解决的关键是丢弃过时的包。
h
21
网络中的延迟重复控制分组
主机1
Βιβλιοθήκη Baidu
主机2
CR
CR(重传的) ACK
DATA 断开连接
固定端口号
不同的服务器程序运行在固定的不同TSAP上, 如WEB,FTP等。
一个专门的进程服务器运行在一组固定的 TSAP上
利用名字服务器获取
维护名字与端口的对应关系 名字服务器总是运行在固定端口上
h
19
h
20
6.2.2 建立连接
网络的传输时延难以预期,而且抖动剧烈, 从而导致了延迟的重复分组。
改善网络层的服务(分组丢失、损坏和乱序),提供 可靠传输服务。
中间网络出错时,可以重新和对端进行协商,使得通 信得以继续
向应用层屏蔽通信子网的细节(网络拓扑、采用 的协议等)
将不同网络的服务原语隐藏起来,对上提供统一的服 务原语,应用层可以使用统一的传输层原语。
传输层位于用户主机上,便于实施端到端的控制。
由于管理大量的连接,故需要新的缓冲和流控机制。
h
16
6.2.1 编址(标识端点)
传输层提供应用进程间的逻辑通信,需要实现应 用进程的全网唯一标识。
SAP:Service Access Point
传输服务访问点(Transport SAP )
建立连接时,一个用户进程必须指定连接到对方的哪 个进程上
含义
无 CONNECTION REQ
阻塞,直到有某个进程试图 与它建立连接
主动尝试建立一个连接
DATA
发送信息
无
DISCONNECTION REQ
阻塞,直到一个DATA分组到 达
释放一个已经建立的连接
h
9
6.1.3伯克利套接字Berkeley Socket
原语 SOCKET BIND LISTEN ACCEPT CONNECT SEND RECV CLOSE
含义 创建一个新的通信端点 将一个本地地址关联到一个套接字上 宣布愿意接受连接,给出队列大小 阻塞调用方,知道有人企图连接
主动尝试建立一个连接 在指定连接上发送数据 在指定连接上接收数据 释放指定连接
h
11
创建socket
int socket(int domain, int type, int protocol)
domain = PF_INET, PF_UNIX type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW
被动打开(服务器端)
int bind(int socket, struct sockaddr *addr, int addr_len) int listen(int socket, int backlog) int accept(int socket, struct sockaddr *addr, int addr_len)
h
12
6.1.4 简单的Internet文件服务器
Server
Client
s=socket
s=socket
bind(s)
listen(s) new_s=accept(s) connect(s)
send(new_s) recv(new_s)
recv(s) send(s)
close(new_s) h close(s)
13
6.2 传输协议要素
h
14
传输层需要解决的问题
差错控制 顺序管理 流量控制 编址问题 拥塞控制 连接管理
与链路层需要解决的问题看起来类似,但 是物理信道变为子网,引发了新的问题。
h
15
由于传输层不可预料的延时,从而比链路层复杂 的多。
传输层需处理寻址问题
数据链路层延时基本可预测;但子网有存储能力,网 络中可能经历更大的延时和抖动,传输层在连接建立, 释放,数据传输等方面面临新的困难。
h
4
6.1 传输服务
传输层对上提供的服务 传输服务原语
h
5
6.1.1 向上层提供的服务
传输层向上层提供高效、可靠和性价比合理的服 务,可以是有连接服务,也可以是无连接服务。
h
6
6.1.2 传输服务原语
应用层
Connect Request ACK
Data Request Data(TPDU)
DisConnect Request
DisConnect ACK
传输层原语
应用层 传输层原语
传输层
传输层
TPDU,传输协议数据单元Transport Protocol Data Unit
h
8
传输服务原语举例
原语 LISTEN CONNECT SEND RECEIVE DISCONNECT
发送的分组
Internet中,TSAP又称为端口(port)
网络服务访问点(Network SAP)
Internet中,IP地址就是NASP
h
17
应用进程
TSAP 1208
NSAP
应用层 传输层 网络层 数据链路层 物理层
h
服务器1
服务器2
TSAP 1522
TSAP 1836
NSAP
18
如何知道目的端的TSAP?
int connect(int socket, struct sockaddr *addr, int addr_len)
收发数据
int send(int socket, char *msg, int mlen, int flags) int recv(int socket, char *buf, int blen, int flags)
第六章 传输层
h
1
网络层将分组从源端沿着网络路径送达目 的端。然而未必能保证主机间的可靠通信。
如果分组丢失或出错怎么办?
网络层可能是不可靠的 IP报文只校验首部
如果中间网络出现问题怎么办?
用户对路由器没有控制权
不同网络的网络层服务原语不同 应该将收到的数据交给哪个高层应用?
需要在网络层之上引入新的层次以弥补网
络层的不足,使得网络的传输服务更加可 靠(对应用层而言)
h
2
传输服务 使用者
应用层
传输服务 提供者
传输层 网络层
链路层
物理层
网络层
网络层
链路层
链路层
物理层
物理层
h
应用层 端到端协议
传输层 具备端到端和 点到点协议的 特点
网络层
点到点协议 链路层
物理层
3
传输层存在的意义
在不可靠的网络层上可以提供从源端主机到目的 端主机的可靠传输服务。
这一问题在数据链路层不会出现
建立连接时需要考虑的问题:
老的控制TPDU延迟到达错误的连接 老的数据TPDU延迟到达错误的数据
解决的关键是丢弃过时的包。
h
21
网络中的延迟重复控制分组
主机1
Βιβλιοθήκη Baidu
主机2
CR
CR(重传的) ACK
DATA 断开连接
固定端口号
不同的服务器程序运行在固定的不同TSAP上, 如WEB,FTP等。
一个专门的进程服务器运行在一组固定的 TSAP上
利用名字服务器获取
维护名字与端口的对应关系 名字服务器总是运行在固定端口上
h
19
h
20
6.2.2 建立连接
网络的传输时延难以预期,而且抖动剧烈, 从而导致了延迟的重复分组。
改善网络层的服务(分组丢失、损坏和乱序),提供 可靠传输服务。
中间网络出错时,可以重新和对端进行协商,使得通 信得以继续
向应用层屏蔽通信子网的细节(网络拓扑、采用 的协议等)
将不同网络的服务原语隐藏起来,对上提供统一的服 务原语,应用层可以使用统一的传输层原语。
传输层位于用户主机上,便于实施端到端的控制。
由于管理大量的连接,故需要新的缓冲和流控机制。
h
16
6.2.1 编址(标识端点)
传输层提供应用进程间的逻辑通信,需要实现应 用进程的全网唯一标识。
SAP:Service Access Point
传输服务访问点(Transport SAP )
建立连接时,一个用户进程必须指定连接到对方的哪 个进程上
含义
无 CONNECTION REQ
阻塞,直到有某个进程试图 与它建立连接
主动尝试建立一个连接
DATA
发送信息
无
DISCONNECTION REQ
阻塞,直到一个DATA分组到 达
释放一个已经建立的连接
h
9
6.1.3伯克利套接字Berkeley Socket
原语 SOCKET BIND LISTEN ACCEPT CONNECT SEND RECV CLOSE
含义 创建一个新的通信端点 将一个本地地址关联到一个套接字上 宣布愿意接受连接,给出队列大小 阻塞调用方,知道有人企图连接
主动尝试建立一个连接 在指定连接上发送数据 在指定连接上接收数据 释放指定连接
h
11
创建socket
int socket(int domain, int type, int protocol)
domain = PF_INET, PF_UNIX type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW
被动打开(服务器端)
int bind(int socket, struct sockaddr *addr, int addr_len) int listen(int socket, int backlog) int accept(int socket, struct sockaddr *addr, int addr_len)
h
12
6.1.4 简单的Internet文件服务器
Server
Client
s=socket
s=socket
bind(s)
listen(s) new_s=accept(s) connect(s)
send(new_s) recv(new_s)
recv(s) send(s)
close(new_s) h close(s)
13
6.2 传输协议要素
h
14
传输层需要解决的问题
差错控制 顺序管理 流量控制 编址问题 拥塞控制 连接管理
与链路层需要解决的问题看起来类似,但 是物理信道变为子网,引发了新的问题。
h
15
由于传输层不可预料的延时,从而比链路层复杂 的多。
传输层需处理寻址问题
数据链路层延时基本可预测;但子网有存储能力,网 络中可能经历更大的延时和抖动,传输层在连接建立, 释放,数据传输等方面面临新的困难。
h
4
6.1 传输服务
传输层对上提供的服务 传输服务原语
h
5
6.1.1 向上层提供的服务
传输层向上层提供高效、可靠和性价比合理的服 务,可以是有连接服务,也可以是无连接服务。
h
6
6.1.2 传输服务原语
应用层
Connect Request ACK
Data Request Data(TPDU)
DisConnect Request
DisConnect ACK
传输层原语
应用层 传输层原语
传输层
传输层
TPDU,传输协议数据单元Transport Protocol Data Unit
h
8
传输服务原语举例
原语 LISTEN CONNECT SEND RECEIVE DISCONNECT
发送的分组
Internet中,TSAP又称为端口(port)
网络服务访问点(Network SAP)
Internet中,IP地址就是NASP
h
17
应用进程
TSAP 1208
NSAP
应用层 传输层 网络层 数据链路层 物理层
h
服务器1
服务器2
TSAP 1522
TSAP 1836
NSAP
18
如何知道目的端的TSAP?