决战网络编程 之 网络协议分层

简介: 决战网络编程 之 网络协议分层

之前一直对网络分层很模糊,一会儿七层分层,一会儿五层,一会儿四层。而且网络编程也是相当重要的一块知识点,总是要拿下来的。今天开始第一篇~~~~


首先不管三层还是五层,都是从七层的网络分层中抽取出来的。我们先来看看是哪七层模型,并且都有些什么用?这里我们采用自上而下的方法,通俗点说,就是发出一个请求。


1.应用层:


应用层是网络应用程序及它们应用层协议停留的地方。因特网的应用层包括许多协议,例如HTTP(它提供了Web文档的请求和传送),SMTP(它提供了电子邮件报文的传输)和FTP(它提供了两个端系统之间的文件传送)。我们将看到,某些网络功能,如将像www.ietf.org这样对人友好的端系统名字转换为32比特的网络地址,也是借助于特定的应用层协议即域名系统完成的。


应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的额应用程序交换信息分组。我们把这种位于应用层的信息分组称为报文。


2.表示层:


表示层的表示有“表现”,“演示”的意思,因此更关注数据的具体表现形式。此外,所使用的应用软件的不同也会导致数据的表现形式的截然不同。例如所有的文字处理软件创建的文件只能由该文字处理器厂商提供的特定版本的处理软件才能打开读取。


表示层的主要作用就是将数据从“某个计算机特定的数据格式”转换为“网络通用的标准数据格式”后再发送出去。接收端主机上收到数据后将这些网络标准格式的数据恢复为“该计算机特定的数据格式”,然后再进行相应处理。


3.会话层:


决定采用合种连接方法是会话层的主要责任。


4.传输层:


我们可以发现,到目前为止,由我们应用层产生的报文还没有开始发送,表示层对其进行了格式化编码,会话层负责确定连接方式,以及何时建立连接,何时发送数据等。真正负责在网络上传输数据的是会话层以下的“无名英雄”。


因特网的传输层在应用程序端点之间传送应用层报文。在因特网中,有两种运输协议,即TCP/UDP,利用其中任何一个都能传输应用层报文。TCP向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地的确保传递和流量控制(即发送方/接收方速率匹配)。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。UDP协议向它的应用程序提供无连接服务。这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。我们把运输层的分组称为报文段。


5.网络层:


因特网的网络层负责将称为数据报的网络层分组从一台主机移动到另外一台主机。在一台源主机中的因特网运输层协议(TCP/UDP)向网络层递交运输层报文段和目的地址,就像你通过邮政服务寄信件时提供一个目的地址一样。


6.链路层:将数据以帧进行传输,


7.物理层:将数据以比特的方式进行传输


什么是五层协议:

在《计算机网络----自顶向下方法》一书中,五层因特网协议栈,去除了表示层跟会话层。


什么是四层协议:

即----》TCP/IP四层(参考)模型。前三层统称应用层,将链路层跟物理层合并,统称为链路层


相关文章
|
1月前
|
存储 网络协议 Ubuntu
【C++网络编程】Socket基础:网络通讯程序入门级教程
【C++网络编程】Socket基础:网络通讯程序入门级教程
55 7
|
1月前
|
Python
Python网络编程基础(Socket编程) 使用try-except处理网络错误
【4月更文挑战第11天】在网络编程中,错误处理和异常管理是非常重要的部分。网络操作经常因为各种原因而失败,比如网络断开、服务器无响应、地址不正确等。因此,学会如何使用Python的异常处理机制来捕获和处理这些错误,是编写健壮的网络应用的关键。
|
2月前
|
网络协议 Go 开发者
Go语言网络编程基础:构建高效、可靠的网络应用
【2月更文挑战第12天】本文将深入探讨Go语言在网络编程领域的基础知识,包括其强大的并发模型、网络库的使用、TCP/IP和HTTP协议的理解等。通过本文,读者将能够理解Go语言在网络编程中的优势,并掌握构建高效、可靠网络应用的核心技能。
|
2月前
|
网络协议 物联网 区块链
【软件设计师备考 专题 】网络体系结构(网络拓扑、OSIRM、基本的网络协议)
【软件设计师备考 专题 】网络体系结构(网络拓扑、OSIRM、基本的网络协议)
133 3
|
4月前
|
缓存 iOS开发
IOS网络编程:使用 URLSession 实现网络请求的步骤是什么?
IOS网络编程:使用 URLSession 实现网络请求的步骤是什么?
33 1
|
3月前
|
缓存 移动开发 JSON
【网络安全 | 网络协议应用层】结合Wireshark讲解HTTP协议
【网络安全 | 网络协议应用层】结合Wireshark讲解HTTP协议
111 0
|
2天前
|
网络协议 算法 Java
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
15 3
|
2天前
|
移动开发 网络协议 程序员
计算机网络:分层体系结构
计算机网络:分层体系结构
10 2
|
4天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
11 0
|
4天前
|
存储 网络协议 算法
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
11 0