在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的端系统发
送一个分组时,源在该分组的首部包含了目的地的IP地址。如同邮政地址那样,该地址具有一种等级结构。当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。更特别的是,每台路由器具有一个转发表( forwarding table),用于将目的地址(或目的地址的一部分)映射成为输出链路。当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现适当的出链路。路由器则将分组导向该出链路。
电路交换的频分复用(FDM)和时分复用(TDM)
:
分组交换与电路交换的对比:参考
三次握手和四次分手:参考
(下面笔记源自维基百科,理解意思即可,不用抠字眼)
丢包:
当通过计算机网络的一个或多个数据包未能到达目的地时,就会发生数据包丢失。数据包丢失要么是由于数据传输中的错误(通常是通过无线网络)引起的,要么是由于网络拥塞引起的。
传输控制协议(TCP)检测数据包丢失并执行重新传输以确保可靠的消息传递。TCP连接中的数据包丢失也用于避免拥塞。
因特网协议(IP)是根据端到端的原则设计的一种尽力而为的传送服务(Best Effort Service),其目的是保持逻辑路由器必须尽可能简单地实现。每个路由器在等待验证下一个节点是否正确接收数据包时,将大量存储空间用于存储数据包。
为了避免所有这些问题,因特网协议允许路由器在路由器或网段太忙而无法及时传送数据时简单地丢弃数据包。对于数据的快速高效传输来说,这并不理想,而且在未被占用的网络中也不会发生这种情况。数据包的丢失会作为网络拥塞的隐式信号,并可能导致发送方减少所消耗的带宽量,或试图寻找另一条路径。例如,使用感知到的数据包丢失作为反馈来发现拥塞,传输控制协议(TCP)的设计使得过多的数据包丢失将导致发送方减速并停止用数据淹没瓶颈点。
如果IPv4报头校验或以太网帧检查序列指示数据包已损坏,则也可能丢弃数据包。丢包也可能由丢包攻击引起。
无线网络易受许多因素的影响,这些因素会在传输过程中损坏或丢失数据包,例如射频干扰(RFI)、由于距离或多径衰落而太弱的无线信号、故障的网络硬件或故障的网络驱动程序。
Wi-Fi天生就不可靠,即使两个相同的Wi-Fi接收器放在彼此很近的地方,它们也不会像人们所期望的那样表现出类似的分组丢失模式
蜂窝网络(移动网络)可能会因“高误比特率(BER)、不稳定的信道特性,以及用户移动性。TCP的故意限制行为阻止无线网络执行接近其理论潜在传输速率的操作,因为未经修改的TCP将所有丢弃的数据包视为由网络拥塞引起的,因此即使无线网络实际上并不拥塞,也可能限制无线网络
网络拥塞是分组丢失的一个原因,它可以影响所有类型的网络。当内容以大于发送速率的速率到达给定路由器或网段并持续一段时间时,除了丢弃数据包外,没有其他选择。如果单个路由器或链路限制整个传输路径的容量,则称为瓶颈。在某些情况下,为了操作管理的目的,通过路由例程或通过网络劝阻技术有意丢弃数据包。
当需要可靠传输时,由于重新传输所需的额外时间,包丢失会增加延迟。假设没有重新传输,则可能会优先丢弃经历最严重延迟的包(取决于所使用的排队规则),从而降低总体延迟。
protocol stack(源自维基百科):
套件(套件是通信协议的定义,并且堆栈是它们的软件实现。)中的单个协议通常设计为只有一个目的。这种模块化简化了设计以及评估。因为每个协议模块通常与另外两个模块间相互交流,他们通常被想象为协议栈中的层。最低的协议总是与通信硬件的低层交互。每一个更高的层都增加了额外的功能。用户应用程序通常只处理最上面的层。
在实际实现中,协议栈通常分为
三个主要部分:物理媒体、传输和应用程序。特定的操作系统或平台将
通常有两个定义良好的软件接口:一个在媒体层和传输层之间,一个在传输层
和应用程序之间。媒体到传输接口定义传输协议软件如何使用特定的媒体和硬
件类型,与设备相关联 。
应用程序到传输接口定义了应用程序程序利用传输层。例如,这个接口级别
定义web浏览器程序将与TCP/IP传输软件进行通信。这些接口有sockets,Winsock等。
传输层服务是操作系统内核实现的,内核向应用层提供api