Introduction to IP
问答:
- WIFI access point: edge
- Content distribution network: core
- Switches: both
- Web server: edge
1.1 什么是Internet
三个部分
- host (end systems) & running network apps
- communication links
- packet switches
1.2 网络边缘
Network Edge
终端
访问网络
access network
将网络边缘与其他网络连接的路
网络核心
network core
Router跟Router之间的网络
网络边缘与核心的界定
Wifi接入点→edge ∵允许终端用户连接网络
内容分发网络Content distribution→(靠近edge的)core
Switches→两者皆有 ∵第二层连接必需,边缘核心都要
Web服务器→edge ∵他们仍然属于终端主机
图示
蓝色:网络边缘
红边:Access network
绿色:network core
Byte与Bit
1 Byte (B) = 8 bits (b)
坑点:运算一个文件的transmission时经常出,要把文件的Byte/8
文件大小通常用MB,即字节
速度用Mb/s,即比特
带宽
link bandwidth,也叫transmission rate, link capacity
单位:bits/sec
传输延迟
Transmission delay
T
r
a
n
s
m
i
s
s
i
o
n
D
e
l
a
y
=
L
(
b
i
t
s
)
/
R
(
b
i
t
s
/
s
e
c
)
TransmissionDelay=L(bits)/R(bits/sec)
TransmissionDelay=L(bits)/R(bits/sec)
1.3 网络核心
Network Core
-
互联的路由器网 -> mesh of interconnected routers
-
包交换(packet-switching):host 将应用层的信息拆分成packet。工作特点如下:
- 每一个packet都已全带宽传输
- store-and-forward,要等整个包都到达路由器后才能传输到下一个结点
- end-end delay: 2L/R (假设没有propagation delay)
- queuing and loss:如果数据到达的速率比transmission率要快,会造成:
- packet will queue, wait to be transmitted
- 如果memory(buffer)满了,则会drop
-
两个网络核心的关键功能
- routing:决定包source-destination的路线
- forwarding:将packet从router input移动到合适的路由器输出
-
互联网结构:网络中的网络 network of networks
终端系统通过访问access ISPs(Internet Service Providers互联网接入服务提供商)
-
Access ISPs 之间一定要相互连接interconnected
-
网络的革命主要靠economics及national policy推动
-
Global transit ISP
用于将多个access ISP连接到一起
-
实际上会有很多个ISP
- ISP之间的连接叫:Peering link
- ISP之间的交换点叫:IXP Internet eXchange Point
-
局域网 regional net:为ISP提供接入网arise access nets to ISP
-
内容提供商网络(content provider network):内容提供商会运营自己的网络使其更接近与用户
-
更大网络的运营商(层级最高)拥有更大的带宽,Tier-1 commercial ISP -> 国家级之间互联的ISP(Level 3, Sprint, AT&T, NTT),可以访问互联网的任意角落。
而内容提供商会选择绕开 tier-1 ISP
-
总结(1.1-1.3)
1.4 延迟、丢包、吞吐量
delay, loss, throughput in network
为什么会有丢包和延迟?
- packet到达速度比输出的带宽要大,造成packet queue等待发送(delay)。如果memory(buffer)满了,就会drop(loss)
延迟
四个造成packet delay的原因,延迟时间计算:
-
proc:nodal processing:检查错误和确定输出链接 (check bits errors, determine output link)
N o d a l P r o c e s s i n g = C h e c k P r o c e s s + d e t e r m i n e T h e O u t p u t Nodal Processing = CheckProcess + determineTheOutput NodalProcessing=CheckProcess+determineTheOutput -
queue:等待向外发送的时间,取决于路由器的拥挤程度 (time waiting at output link for transmission, depends on congestion level of router)
-
Trans:发送延迟(用在把packet送到光纤上的时间)
d t r a n s = L ( 包 长 度 b i t s ) / R ( L i n k B a n d w i d t h 带 宽 b p s ) dtrans=L(包长度bits)/R(Link Bandwidth带宽bps) dtrans=L(包长度bits)/R(LinkBandwidth带宽bps) -
Prop:propagation delay传输延时,速度
2x10^8m/s
时 延 d p r o p = d ( 光 纤 长 度 ) / s ( 传 播 速 度 — — 2 / 3 光 速 ) 时延 dprop=d(光纤长度)/s(传播速度——2/3光速) 时延dprop=d(光纤长度)/s(传播速度——2/3光速) -
包发送计算中,主机发送包到达一个站点后就会发送下一个包
丢包
loss:
- 包传到满载的队列就会丢失
- 丢失的包可能会被重新发送,也可以一点都不
吞吐量
throughput:是一个rate
b
i
t
s
/
T
i
m
e
U
n
i
t
(
s
e
c
)
bits/TimeUnit(sec)
bits/TimeUnit(sec)
- 瞬时量 instantaneous
- 平均量overage
瓶颈链路:bottleneck link
End→router→end 这两段中吞吐量最小的那段决定了整个链路的平均吞吐量→从而决定了整个连接的带宽
此段称为瓶颈链路
骨干链路:backbone link
即所有的链路共用的一条大链路。我们讨论单个端到端连接时,会将该链路的吞吐量/连接数量进行讨论,以确定bottleneck link
计算单位问题
注意:
-
在信息传输中,进位机制为1kb/s=1000b/s,其中b为bit比特
-
在信息存储中,进位机制为1kb=1024b,其中b为byte字节
1byte=8bit
1.5 协议层及服务模型
层 Layer
每个layer实现一些服务
- 通过层内动作(internal actions)来执行
- 依赖于低于其层级的layer(by layer below)
分层原因:
- 明确的结构便于分清复杂系统的各个部分以及它们之间的联系(helps with complexity)
- 模块化能让维护和系统更新变得更加容易(Modularization eases maintenance and updates)
TCP/IP model (互联网模型)
-
应用层 Layer 7:支持网络应用(如:FTP,SMTP,HTTP)
-
传输层 Layer4:将数据从一个进程传输到另一个进程(如:TCP,UDP) -> 有关依赖性和用来发送和接受数据的程序,会保证包发送的顺序;校验和检查数据是否损坏
-
网络层 Layer3:Routing(专有名词) datagrams从源头到终点 -> Global的网络,如IP, routing protocols
-
链路层 Layer2:数据在邻近网络的网络中传输,如Ethernet(以太网)、802.111 WIFI
-
物理层 Layer1:bits “on the wire” (e.g. repeater中继器(用来加强信号))→将比特转化为信号
ISO/OSI参考模型
- ISO = International Standards Office
- OSI = Open Systems Interconnection
表现层 Layer6:让应用层能够解析(interpret)数据意义,负责加密/压缩/转换等功能 ->和符号集与数据的表示有关
会话层 Layer5:负责数据交换的同步/检查和回复(synchronization, checkpointing, recovery of data exchange)
↑现在的TCP/IP模型已弃用这两个层→其功能已全部在应用层里完成了
ISO/OSI 与 TCP/IP 对比
Header
- 用来说关于数据的信息,与数据发恩开
- 数据从何而来
- 目的地电脑的哪个程序必须接受它->每一个层都会处理header的信息
- 数据的长度
Header在经过每一层后,会继承前一层的Header并进行更新:发送的时候是加Header,接受的时候是删掉Header
Application层没有Header,只有Message的内容
各层的设备
-
路由器Router,判断包应该发送给哪台设备
Layer3 读取IP地址然后分析出包要往哪个方向走
-
交换器Switch
Layer2 读取MACA地址然后分析出哪个邻近电脑应该取得消息
比router简单
-
Repeater
Layer1 加强或重建损坏的信号并继续发送它
-
Web Browser
Layer7 创建网页HTML信息
-
Make sure packets are in the right order
Layer4
几个层口诀
Please Do Not Throw Sausage Pizza Away
Application Layer
作为Programmer用得最多的Layer
应用层的“网络”是发散的,通过socket中的数据流来接受发送信息
不同的应用有不同的格式:
- HTTP(Hypter Text Transfer Protocol)-- world-wide web
- FTP(FileTransfer Protocol)-- moving data
- SMTP(Send Mail Transfer Protocol)-- sending email
- IMAP(Internet Message Access Protocol)-- receiving email
Sockets
进程收发(receive/send)消息都要经过(from/to)socket
标识进程的地址
标识符 -> identifier
包含IP address和port numbers
每一个host都有唯一的32-bit的IP地址
四种TCP/IP中不同的地址
- Physical address Layer2
- AKA link address, 被LAN或者WAN定义的节点的地址
- Logical address Layer3
- Logical的IP地址,是对于广域网来说的。与Physical Layer2的独立
- Port address Layer4
- 以不同的端口号区分不同的进程
- Application-specific address Layer7
- 例如邮箱地址和URL
应用层协议内容
①交换信息的类型type(请求与响应)
②信息的句法syntax(信息中各区块的内容和描述方法)
③信息的语义semantics
④进程做出对信息的请求和响应的规则rule
⑤开放协议open protocol(e.g. HTTP/SMTP)
⑥专有协议proprietary protocol(e.g. Skype)
Session&Presentation Layer
只是理论,还没有应用的
Seession
- 关注两个host之间的连接的lifetime
- 包含Authentication和authorisation(who is the user, what can they do)的信息
Presentation
- 为Application翻译信息(Translates data)
- 例如关注特定的字符集(character set)