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

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

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


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


1.应用层:


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


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


2.表示层:


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


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


3.会话层:


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


4.传输层:


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


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


5.网络层:


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


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


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


什么是五层协议:

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


什么是四层协议:

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


相关文章
|
4月前
|
移动开发 网络协议 NoSQL
不为人知的网络编程(十七):冰山之下,一次网络请求背后的技术秘密
本文将抛弃千篇一律的计网知识理论,从现实的互联网技术实践角度,一步步为你分享一次网络请求背后的技术秘密。
76 0
|
2月前
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
140 2
|
4月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
|
5月前
|
存储 机器人 Linux
Netty(二)-服务端网络编程常见网络IO模型讲解
Netty(二)-服务端网络编程常见网络IO模型讲解
|
5月前
|
网络协议 Python
告别网络编程迷雾!Python Socket编程基础与实战,让你秒变网络达人!
在网络编程的世界里,Socket编程是连接数据与服务的关键桥梁。对于初学者,这往往是最棘手的部分。本文将用Python带你轻松入门Socket编程,从创建TCP服务器与客户端的基础搭建,到处理并发连接的实战技巧,逐步揭开网络编程的神秘面纱。通过具体的代码示例,我们将掌握Socket的基本概念与操作,让你成为网络编程的高手。无论是简单的数据传输还是复杂的并发处理,Python都能助你一臂之力。希望这篇文章成为你网络编程旅程的良好开端。
78 3
|
4月前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
39 0
|
5月前
|
网络协议 安全 网络安全
C语言 网络编程(四)常见网络模型
这段内容介绍了目前被广泛接受的三种网络模型:OSI七层模型、TCP五层模型以及TCP/IP四层模型,并简述了多个网络协议的功能与特性,包括HTTP、HTTPS、FTP、DNS、SMTP、TCP、UDP、IP、ICMP、ARP、RARP及SSH协议等,同时提到了ssh的免费开源实现openssh及其在Linux系统中的应用。
|
6月前
|
安全 Java 网络安全
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
60 2
|
6月前
|
网络协议 Java
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
这篇文章全面讲解了基于Socket的TCP网络编程,包括Socket基本概念、TCP编程步骤、客户端和服务端的通信过程,并通过具体代码示例展示了客户端与服务端之间的数据通信。同时,还提供了多个案例分析,如客户端发送信息给服务端、客户端发送文件给服务端以及服务端保存文件并返回确认信息给客户端的场景。
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
|
6月前
|
网络协议 Java 关系型数据库
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
112 2

热门文章

最新文章