计算机网络 --应用层,传输层
2023-09-03 13:20:30 0 举报
计算机网络自顶向下方法第7版
作者其他创作
大纲/内容
16bit
Flags
Client
ESTAB
RESPONSE
Resolver
Layer 4protocol
Application
font color=\"#d32f2f\
1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
Target Port
req_conn(x)
①
Layer 1
ack4
KingCDN DNS Authoritative Server
可靠数据传输(rdt)的原理
2
Window
会话层
等待来自上层的调用 1
pkt0
Physical medium
HostD
delay
Open Connection
N14
非结构化P2P(完全分布式)
rdt1.0
Layer 4
④
query
N21
data
Service
Sock
IP
Port
PID
\\
8888
1.1.1.1
80
时隙
ack=92
③
服务与服务访问点服务(Service)- 低层实体向上层实体提供他们之间的通信的能力原语 (Primitivespan style=\"font-size: inherit;\
ssthrest=cwnd/2cwnd=1dupACKCount=0retransmit missing segment
Network(without abundant bandwidth)
Target IP
rdt_send(data)
time-wait
i
等待ACK或NAK 0
②
1460B
s
UDP数据报
网络层
ack
accept data(x+1)
time-wait(t)
N42
UDP package
Server
②responseMANIFAST FILE
EDC
Rdt2.0
IP Body
IP包头
rdt_rcv(rcvpkt) && currupt(rcvpkt)
HostA
ack0
dupACKCount==3
⑥
UDP用户数据报协议
+32
ssthrest=cwnd/2cwnd=1MSSdupACKCount=0retransmit missing segment
dns.umass.edu
\"Hi\"
32 bit
data :
协议层次和服务模型
VideoServer
HTTP/3.0
N32
file
Message
Data
发送方缓存区
Source IP
dupACKCount++
Router
rdt_rcv(rcvpkt) && isACK(rcvpkt)
rdt_rcv(rcvpkt) && notcurrupt(rcvpkt)&& has_seq1(rcvpkt)
cache: limitedbandwidth: R
Source Port
offset
Layer n
等待来自下层的0
N24
等待来自下层的1
Layer 3protocol
payload
等待ACK或NAK 1
pkt1
b style=\"font-size: inherit;\
等待来自下层的调用
Layer 4/5 interface
data(x+1)
目标:校验在被传输报文段中的差错(比如比特反转)发送方 · 将报文段的内容视为16比特的整数 · 校验和:报文段的加法和(1的补运算) · 发送方将校验和放在UDP的校验和字段接收方 · 计算接收到的报文段的校验和 · 检查计算出的校验和与校验和字段的内容是否相等:不相等---检测有差错font color=\"#e57373\
R/2
write
rwnd
P2P Service
IXP
UDP校验和
频率
TCP Segment Format
HostB
nak
acc_conn(x)
目的地
header
ack=120
Layer n+1
span style=\"font-size: inherit;\
等待来自上层的调用 0
application
Layer 2/3 interface
TDM
rdt_rcv(rcvpkt) && (corrupt(rcvpkt) ||isNAK(rcvpkt))
rwnd=0
0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
∧
超时
reliable datatransfer protocol(sending side)
socket
TCP
三次握手数据重传
快速重传
TCP recv buf
read
接入ISP
...
Rdt2.1 添加序号后具有比特误差的信道发送方 · 在分组中加入序列号span style=\"font-weight: normal;\
流水线可靠数据传输协议(pipeline)为什么会出现pipelinefont color=\"#000000\
ISP互联
ack1
select socket from port and ip
Authoritative DNS Server
RESPONSE(encryption)
HostC
数据链路层
Close Connection
TCP send buf
分组1
用户B接收
⑤
2222
2.2.2.2
777
u
TCP包头
动作
Free Space
Host2
0
1
3
4
5
6
7
pkt
rdt_send(data) && (currupt(rcvpkt) || has_seq1(rcvpkt))
time-wait(2t)
UDP Socket
以太网电缆
时间
original data : and retransmit data:
校验部分(包含报文头和报文体)
Local DNS Server
rdt_rcv(rcvpkt) && notcurrupt(rcvpkt)
公司网络
1byte
2000-3459
HTTP/1.0浏览器每次请求都需要与服务器建立一个TCP连接,服务器处理完成以后立即断开TCP连接(无连接),服务器不跟踪也每个客户单,也不记录过去的请求(无状态)。存在问题1.无法复用连接,每次发送请求,都需要进行一次TCP连接。2.队头阻塞,由于HTTP1.0规定下一个请求必须在前一个请求响应到达之前才能发送,假设前一个请求响应一直不到达,那么下一个请求就不发送,后面的请求就阻塞了。HTTP/1.1在1.0的基础上进行了优化,改用长连接,HTTP1.1中增加Connection字段,对于同一个host,通过设置Keep-Alive保持HTTP连接不断。支持断点续传,通过使用请求头中的 Range 来实现。可以使用管道传输。存在问题font color=\"#000000\
如:MAC地址
KingCDN Server
GET /scripts.js
send tcp pkt
Layer 3
流水线可靠数据传输协议
font color=\"#0d47a1\
应用层
rdt_send(data)&& notcurrupt(rcvpkt)&& has_seq0(rcvpkt)
识别上一层为tcp
4.responce
send buf
cwnd=ssthrestdupACKCount=0
rdt2.2
rdt_send(data) && (currupt(rcvpkt) || has_seq0(rcvpkt))
d
N56
全球ISP
R/4
sndpkt =make_pkt (NAK)udt_send(sndpkt)
sendingprocess
head
N8
dns.nyu.edu
Local Name Server
Layer 1protocol
Destination Port
recvack
①regist
数据单元 - 服务
GET /index.html
new ACK
1.request
+16
TCP/IP五层模型
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
rdt_send(data)&&currupt(rcvpkt)
. . .
我们将: · 渐增式地开发可靠数据传输协议(rdt)的发送方和接收方 · 只考虑单向数据传输(但控制信息是双向流动的) · 双向的数据传输问题实际上是2个单向数据传输问题的综合 · 使用有限状态机(FSM)来描述发送方和接收方font color=\"#e57373\
⑧
表示层
DNS
以太网头
recv buf
get public key
首个分组第一个bit发送
C/S模式与P2P模式的比较C/S模式font color=\"#0d47a1\
TCP Socket
家庭网络
⑦
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt)
udt_send(sndpkt)
HTTP/1.1
源
套接字应用进程与端到端传输协议(TCP或UDP)之间的门户TCP Socket① 在Server端创建welcomeSocketspan style=\"font-weight: 400; font-size: inherit;\
传输层
分组丢失
如:IP
结构化(DHT)P2P
Sequence Num
以太网首部解析
GET /style.css
retransmit
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) span style=\"font-size: inherit;\
Acknowledgment Num
状态1
Root DNS Server
original data :
②query
如:网卡
主机,路由器和链路层交换机,每个包含了不同的层,反应了他们的功能差异。
流量控制
SAP
+1
tcp首部解析
OSI参考模型
SDU
N * PUD
拥塞避免
close
路由器
移动网络
TCP package
FILE
分组3
rdt_rcv(rcvpkt) && notcurrupt(rcvpkt)&& has_seq0(rcvpkt)
3460-4919
timeout
⑨ read request from connectionSocket
① ServerSocket = Socket(..)font color=\"#000000\
+8
packet=make_pkt(data)udt_send(packet)
等待来自上层的调用
接收方缓冲区
⑦ read reply to serverSocket
物理层
FDM
+4
帧
GBN(Go-Back-N)
Internet结构和ISP
无丢包操作
Urgent Point
ssthrest=cwnd/2cwnd=cwnd+3MSSretransmit missing segment
TCP协议
4kHz
refuse
协议分层
send notacked
480P
720P
cwnd=cwnd+MSS(MSS/cwnd)span style=\"font-size: inherit;\
分层封装
duplicate ACK
非结构化P2P(集中式目录)
deliver_data()
引发状态变迁的事件
分组2
ack=100 loss
TLD DNS Server
Client Leader
udt_send()
TCP特点font color=\"#0d47a1\
R/3
isACK=true
Layer 3/4 interface
数据单元 - 协议
R bps
stop_timer
校验和
NetCinema Authoritative DNS Server
rdt_rcv(rcvpkt) && isNAK(rcvpkt)
reserved
硬件层
和
ICI
rdt_rcv(data)
如今的因特网如何实现?由十多个第一层ISP和数十万个较低层ISP组成。ISP覆盖的区域多种多样,较低层的ISP与较高层的ISP相连,用户和内容提供商是较低层的ISP的客户。较低层的ISP是较高层的ISP客户,近年来内容提供商也创建自己网络直接与较低层ISP互联。font color=\"#0d47a1\
GET /style.css(encryption)
Client(receiving side)
seq = 79 ack=43 data='c'
Length
1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
unreliable channel
传输服务和协议1.为运用在不同主机上的应用进程提供逻辑通信2.传输协议运行在端系统 · 发送方: 将应用层的报文分成font color=\"#e57373\
seq=42 ack = 79 data='c'
地区ISP
rdt2.1
1. 应用调用解析器(resolver)2. 解析器作为客户向Name Server发出查询报文(封装在UDP段中)3. Name Server返回响应报文(name/ip)本地名字服务器(Local Name Server)1. 并不严格属于层次结构font color=\"#000000\
2.request
cse.nyu.edu
cwnd=1 MSSssthrest=64 KBdupACKCount=0
reliable datatransfer protocol(receiving side)
⑧ send request using clientSocket
链路层交换机
pkt1 loss
N54
回卷
NAK pkt error
拥塞控制
状态2
VideoFile
事件
packet
(b)service implementation
UDP复用与解复用
UDP Segment Format
3.responce
Rdt2.1
网络核心
rdt_rcv(rcvpkt)
rdt3.0
reliable channel
Rdt2.2
· 检查报文段的目标端口号 · 用该端口号将报文段定位给套接字如果两个不同源IP地址/源端口号的数据报font color=\"#e57373\
send andacked
rdt_send(data)&& notcurrupt(rcvpkt)&& has_seq1(rcvpkt)
Layer 5
D
Connection RemainsOpen
+2
query hit
Rdt3.0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
application layer
区域ISP
TCP复用与解复用
内容提供商
Top-level DomainDNS Server
Protocol
80byte
HTTP/2.0
Interface
(a)provided service
input'c'
TCP Option
cwnd=cwnd+MSSspan style=\"font-size: inherit;\
P2P架构
to send
not readyto send
IDU
① Message② &sad③ Socket
www.NetCinema.com
network layer
cache: limitless bandwidth: R
send window
4920-6379
seq=43 ack=80
用户A发送
receiverprocess
GET /index.html(encryption)
cost
Finger Table8+1 -> N148+2 -> N148+4 -> N148+8 -> N218+16 -> N248+32 -> N42
CheckSum
RTT
RcvBuffer
1080P
body
. . .
udt_send(sndpkt)start_timer
20byte
8899
①request
Layer 2protocol
递归查询(深度优先)recursive query
recv'c'
等待ACK或NAK
queryhit
服务和协议的关系font color=\"#0d47a1\
Layer 2
视频流化服务
Server(sending side)
丢失ACK
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
链路
慢启动
Layer 1/2 interface
超时过早
MSS
HTTP
rwnd=80
cwnd >=ssthrest
SAP = Service Access PointIDU = Interface Data UnitSDU = Service Data UnitPDU = Protocol Data UnitICI = Interface Control Information
TCP拥塞感知
HTTP/1.0
TCP拥塞控制策略
transport layer
有限状态机(FSM)
6380-7839
两次握手数据重传
③request
首个分组第一个bit到达
CDN
迭代查询(广度优先)iteractive query
rdt_rcv()
ack1 loss
UCP package
状态变迁时采取的行动
电路交换与分组交换
非结构化P2P(混合体)
① welcomeSocket = Socket(..)font color=\"#000000\
Layer 5protocol
递归查询名字解析负担都放在当前联络的名字服务器上问题: 根服务器负担太重解决: 迭代查询
Host1
rdt2.0
SR(Selective Repeat)
rdt_send()
快速启动
0 条评论
下一页