从应用层上层往下进行了解:
1. Application layer【应用层】
Application layer 作为实际应用程序和presentation layer 的接口通过某种方式把应用程序的有关信息送达到协议栈的下面各层,它只是应用程序的一个接口,需要处理远程资源时才会起作用,应用层还负责识别并建立想要通信的计算机一方的可用性。
2. Presentation layer【表示层】
表示层因为它的用途而得名,它为应用层提供数据,并负责数据转换和代码的格式化。主要提供数据压缩加密转换服务,例如tiff jpeg midi rtf 等…
3. Session layer【会话层】
负责建立,管理和终止表示层实体之间的session 连接,他在系统之间协调通信过程,并提供3 种不同的方式来组织他们之间的通信 全双工,半双工,单工(full duplex ,half duplex simplex)通信,总之,会话层基本上用来使不同应用程序的数据与其它应用程序的数据保持隔离.
一些Session layer 协议和接口的例子:
- Network File System(NFS)
- Structured Query Language(SQL)
- Remote Procedure Call(RPC)
- X Window
- AppleTalk Session Protocol
- Digital Network Architecture Session Control Protocol(DNA SCP)
4. Transport layer【传输层】
将数据分段并重组为数据流(data stream)。TCP UDP 都工作在传输层,当采用TCP/IP 协议时,程序开发者可以在这2 者之间做出选择。传输层负责为实现上层应用程序的多路复用,建立会话连接和断开虚电路提供机制.通过提供透明的数据传输,他也对高层隐藏了任何与网络有关的细节信息。
(1) 流量控制:(flow control)
在传输层通过进行流量控制,以及通过在系统之间允许用户请求可靠的数据传输, 就可以保证数据的完整性。流量控制可以防止在连接的一侧的发送主机使接受主机的缓冲区产生溢出。缓冲区溢出将导致数据的不完整.如果数据发送方传输数据过快,接受方将数据报(datagrams)暂时存储在缓冲区(buffer)可靠的数据传输采用了面向连接
(connection-oriented)通信方式,保证:
- 接受方接受到被传输的段(segment)以后将发回确认(acknowledge)给发送方
- 任何没有经过确认的段将被重新传输
- 段在达到接受方之前应按照适当的顺序
- 可以进行管理的流控制技术用于避免拥塞,超载(overloading)和数据的丢失
面向连接的通信:( connection-oriented communication)
在可靠的传输层操作中,一个想要传送的设备同过创建会话与远程设备建立连接,通常称为3 次握手协议。
(2) 握手协议:(three-way handshake);
- 第一个”同意连接”数据段用来请求同步,
- 第二个,第三个数据段用来确认请求,并在主机之间建立连接参数。 这里,接受方的排序也要求进行同步,以便建立双向连接.
- 最后一个数据段也用来确认。她通知目的主机已同意建立连接,并且已经建立了实际的连接。可以开始
数据传输了.传输数据量过大时,会出现一些问题,某一台机器收到大量的数据包,数度太快,造成缓冲区溢出,最后不得不丢弃.随后到来的所有数据包。但不用担心,网络中有流量控制系统,出现这种情况,接收方会发出一个not ready 的信号, 待处理完毕后,又发出 ready,go on 的信号,继续传输。 流量控制类型: 窗口机制, 缓冲和拥塞避免。
a. 窗口机制( windowing)
发送方在没有收到确认是,别允许发送的数据段的数量,称为窗口。
窗口的尺寸大小控制了有多少信息从一端传向另一端,虽然有些协议以数据包的数量来量化信息,但tcp/ip通过计算字节数来量化信息。
b. 确认
为了保证数据传送的不重复性和不被丢失,可以同过“带重传的肯定确认”来实现,方法是要求接收方在收到数据是,发给发送方一个确认信息,来与发送方机器保持通信。 当发送一个数据包时,发送方及其启动一个计时器,在规定时间内,未收到对方确认是, 显示request time out, 重新发送一次。
5. Network layer【网络层】
负责设备的寻址,跟踪网络中设备的位置,并决定传送数据的最佳路径。 路由器和3 层交换机工作在这个层上。
路由工作原理:
首先,接受到一个包,然后检查其目的ip,查询路由表,选择最佳路径,选择一个interface,包就被送到那个端口,并被封装成帧,送出本地网络,如果在路由表里找不到相应的目的网络的表项,则自动丢弃该包。网络层有2 种类型的包(packets):数据包(data)和路由更新(router update)包,前者,很显然,用来传送用户数据。后者,用来向相邻路由器通知连接到网络的所有路由器的更新信息。这种协议为主动路由协议,如RIP EiGRPOSPF.
路由表:
- CCIE Routing and Switching note by Ka\(^oo^)/Ka
- Part 1. - 4 -
包含如下信息:
- Network Address:他们与特定的协议有关的网络地址。
- Interface : 当数据包被发送到特定的网络时,数据包将选择一个外出接口
- Metric : 指到远程网络的距离。不同的协议度量方式不同。
路由器特点:
- 屏蔽广播包和组播包(multicast)
- 使用logic address, 它存在于网络层的报头中,用来决定下一跳(hop)的路由地址
- 可管理,创建访问列表
- 可提供第2 层的桥接功能,并通过同一个接口传送。
- 可提供vlan 间的连接
- 提供quality of service(Qos)
6. Data link layer【数据链路层】
the Data Link layer 负责数据的物理传输,错误检测,网络拓扑和流控制.这个意味着在数据LAN 上将根据硬件地址来进行投递,还要把Network layer 的包翻译成比特用于在Physicallayer 上传输。
IEEE 以太网(Ehernet)的Data Link layer 有2 个子层:
- Media Access Control(MAC)802.3:这层定义了物理地址和拓扑结构,错误检测,流控制等.共享带宽,先到先服务原则(first come/first served)
- Logical Link Control(LLC)802.2:负责识别Network layer 协议然后封装(encapsulate)数据.LLC 头部信息告诉Data Link layer 如何处理接收到的帧,LLC 也提供流控制和控制比特的编号
- Switches and Bridges at the Data Link Layer
第二层的设备switches 被认为是基于硬件的bridges, 因为采用的是1 种叫做application-specific integrated circuit(ASIC)的特殊硬件.ASICs 可以在很低的延时(latency)里达到gigabit 的速度;而bridges 是基于软件性质的。
延时:1 个帧从进去的端口到达出去的端口所耗费的时间
透明桥接(transparent bridging):如果目标设备和帧是在同1个网段,那么2层 设备将堵塞端口防止该帧被传送到其他网段;如果是和目标设备处于不同网段,则该帧将只会被传送到那个目标设备所在的网段每个和switches 相连的网段必须是相同类型的设备,比如你不能把令牌环(Token Ring)上的主机和以太网上的主机用switches 混合相连,这种方式叫做media translation,不过你可以用routers 来连接这样不同类型的网络.在LAN 内使用switches 比使用hubs 的好处:
- 插入switches 的设备可以同时传输数据,而hubs 不可以
- 在switches 中,每个端口处于1 个单独的冲突域里,而hubs 的所有端口处于1 个大的冲突域里,可想而知,前者在LAN 内可以有效的增加带宽.但是这2 种设备的所有端口仍然处于1 个大的广播域里
7. Physical layer【物理层】
the Physical layer 负责发送和接受比特,比特由1 或者0 组成.这层也用于识别数据终端装备(data terminal equipment,DTE)和数据通信装备(data communication equipment,DCE)的接口,DCE 一般位于服务商(sevice provider)而DTE 一般是附属设备.可用的DTE 服务通常是经由modem 或者channel service unit/data sevice unit(CSU/DSU)来访问hubs:其实是多端口的repeaters,重新放大信号用,解决线路过长,信号衰减等问题。
1 个物理星形(star)拓扑结构,实际在逻辑上是逻辑总线(bus)拓扑结构: