网络系列文章前传

好像之前一直没有写过网络相关的文章,导致有时候分不清所涉及的网络协议是在哪层提供支持的,每天的接触新东西,旧的就容易遗忘和混淆。所以还是那句老话,好记忆力不如烂笔头。就将我已经接触到的网络相关知识做一个简单的总结吧。

OSI参考模型

OSI参考模型是ISO的建议,它是为了使各层上的协议国际标准化而发展起来的。OSI参考模型全称是开放系统互连参考模型(Open System Interconnection Reference Model)。这一参考模型共分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

因为从下往上,底层都是为上层提供支持和服务的,因此从下往上来看看各个层次的功能:

物理层(Physical Layer)主要是处理机械的、电气的和过程的接口,以及物理层下的物理传输介质等。

数据链路层(Data Link Layer)的任务是加强物理层的功能,使其对网络层显示为一条无错的线路。

网络层(Network Layer)确定分组从源端到目的端的路由选择。路由可以选用网络中固定的静态路由表,也可以在每一次会话时决定,还可以根据当前的网络负载状况,灵活地为每一个分组分别决定。

传输层(Transport Layer)从会话层接收数据,并传输给网络层,同时确保到达目的端的各段信息正确无误,而且使会话层不受硬件变化的影响。通常,会话层每请求建立一个传输连接,传输层就会为其创建一个独立的网络连接。但如果传输连接需要一个较高的吞吐量,传输层也可以为其创建多个网络连接,让数据在这些网络连接上分流,以提高吞吐量。而另一方面,如果创建或维持一个独立的网络连接不合算,传输层也可将几个传输连接复用到同一个网络连接上,以降低费用。除了多路复用,传输层还需要解决跨网络连接的建立和拆除,并具有流量控制机制。

会话层(Session Layer)允许不同机器上的用户之间建立会话关系,既可以进行类似传输层的普通数据传输,也可以被用于远程登录到分时系统或在两台机器间传递文件。

表示层(Presentation Layer)用于完成一些特定的功能,这些功能由于经常被请求,因此人们希望有通用的解决办法,而不是由每个用户各自实现。

应用层(Application Layer)中包含了大量人们普遍需要的协议。不同的文件系统有不同的文件命名原则和不同的文本行表示方法等,不同的系统之间传输文件还有各种不兼容问题,这些都将由应用层来处理。此外,应用层还有虚拟终端、电子邮件和新闻组等各种通用和专用的功能。

快速记忆就是:应表会传网数物

TCP/IP参考模型

TCP/IP参考模型是首先由ARPANET所使用的网络体系结构。这个体系结构在它的两个主要协议出现以后被称为TCP/IP参考模型(TCP/IP Reference Model)。这一网络协议共分为四层:网络访问层、互联网层、传输层和应用层。(这个咱们就别快速记忆了,理解记忆吧,因为实际中我们遇到的基本都是这个模型)

同样自下而上的功能分别为:

网络访问层(Network Access Layer)在TCP/IP参考模型中并没有详细描述,只是指出主机必须使用某种协议与网络相连。(网络接口层)

常见的接口层协议有:Ethernet 802.3、Token Ring 802.5、X.25Frame
relay
HDLC、PPP ATM等。

互联网层(Internet Layer)是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序和发送的顺序也可能不同。高层如果需要顺序收发,那么就必须自行处理对分组的排序。互联网层使用因特网协议(IP,Internet Protocol)。TCP/IP参考模型的互联网层和OSI参考模型的网络层在功能上非常相似。(网络层)

网络层包括:IP(Internet Protocol)协议、ICMP(Internet
Control Message Protocol)

控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。

IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。IP数据报是无连接服务。

ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。

Ping命令就是发送ICMP的echo包,通过回送的echo
relay进行网络测试。(CVE-2015-3636,给懂得人~)

传输层(Tramsport Layer)使源端和目的端机器上的对等实体可以进行会话。在这一层定义了两个端到端的协议:传输控制协议(TCP,Transmission Control Protocol)和用户数据报协议(UDP,User Datagram Protocol)。TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP是面向无连接的不可靠传输的协议,主要用于不需要TCP的排序和流量控制等功能的应用程序。(传输层)

应用层(Application Layer)包含所有的高层协议,向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。(应用层)

应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP。

FTP(File Transfer Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。

Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。

DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换,使用端口53。

SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转,使用端口25。

NFS(Network File System)是网络文件系统,用于网络中不同主机间的文件共享。

HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联网中的WWW服务,使用端口80。

这些端口,最好记住,因为我遇到过这样的题~~(做项目和笔试感觉还是两码事儿,做项目的时候很熟练的东西,到了答题就感觉很奇怪或者忘记了细节。)

TCP/IP协议不是TCPIP这两个协议的合称,而是指因特网整个TCP/IP协议族。下面这幅图很好的帮助记忆和理解各个协议在TCP/IP模型中的之间的关系。

总结:对于网络的层次关系和协议的理解,无论是在unix编程中还是在Android的编程中都是一样的,可能就只是网络相关API的不同吧。因此,首先有一个网络全局观会对后面文章中的细节理解有一个俯视的姿态。请关注后续文章...

时间: 2024-10-16 01:17:41

网络系列文章前传的相关文章

C#网络编程系列文章(一)之Socket实现异步TCPserver

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列文件夹 C#网络编程系列文章(一)之Socket实现异步TCPserver C#网络编程系列文章(二)之Socket实现同步TCPserver C#网络编程系列文章(三)之TcpListener实现异步TCPserver C#网络编程系列文章(四)之TcpListener实现同步TCPserver C#网络编程系列文章

TCP和UDP通信(C#网络编程) ---- 系列文章

文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编程系列文章(二)之Socket实现同步TCP服务器 C#网络编程系列文章(三)之TcpListener实现异步TCP服务器 C#网络编程系列文章(四)之TcpListener实现同步TCP服务器 C#网络编程系列文章(五)之Socket实现异步UDP服务器 C#网络编程系列文章(六)之Socket实现同步UDP服务器 C#网络编程系列文章(七)之UdpClient实现异步UDP服务器 C#网络编程系列文章(八)

C#网络编程系列文章(八)之UdpClient实现同步UDP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编程系列文章(二)之Socket实现同步TCP服务器 C#网络编程系列文章(三)之TcpListener实现异步TCP服务器 C#网络编程系列文章(四)之TcpListener实现同步TCP服务器 C#网络编程系列文章(五)之Socket实现异

转:?Android IOS WebRTC 音视频开发总结 (系列文章集合)

随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). callstats是一家做实时通讯性能测阅读全文 posted @ 2016-07-22 08:24

openstack系列文章(四)

学习 openstack 的系列文章 - Nova Nova 基本概念 Nova 架构 openstack Log Nova 组件介绍 Nova 操作介绍 1. Nova 基本概念 Nova 是 openstack 最核心的服务,负责管理和维护云环境的计算资源,虚拟机的生命周期管理就是通过 Nova 来实现的 . 2. Nova 架构 2.1 Nova 基本组件 如上图所示,Nova 由多个组件构成,这些组件以子服务的形式运行 . 举例,通过  systemctl status openstac

重新想象 Windows 8.1 Store Apps 系列文章索引

[源码下载] [重新想象 Windows 8 Store Apps 系列文章] 作者:webabcd 1.重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar 介绍重新想象 Windows 8.1 Store Apps 之新增控件 AppBar - 应用程序栏控件(新增了 AppBarButton, AppBarToggleButton, AppBarSeparator) CommandBar - 应用程序栏控件(AppBar 简

开篇:开源研究的启示 - 开源研究系列文章

对于软件开源,笔者几年前就有所关注,但是实际投入的时间不是很长.记得当时关注的是”开源中国社区”,不过那时候该网站的版面和内容还没有现在这么丰富,只是收集了一些开源软件的内容. 一.先说说国际上的软件开源情况. 几年前,国际上的软件开源那时候国际上的软件开源还不是很流行,当时有谷歌的Chrome浏览器代码开源,引起了国内的一些浏览器开发商的关注,所以就有了这么些个基于Chrome内核的多款浏览器的产生.当时关注的是“Code Project”和“Sourceforge.net”,这两个站让国际上

SpringMVC深度探险(一) —— SpringMVC前传

本文是专栏文章(SpringMVC深度探险)系列的文章之一,博客地址为:http://downpour.iteye.com/blog/1330537 在我们熟知的建立在三层结构(表示层.业务逻辑层.持久层)基础之上的J2EE应用程序开发之中,表示层的解决方案最多.因为在表示层自身的知识触角很多,需要解决的问题也不少,这也就难免造成与之对应的解决方案层出不穷. 笔者在很多讨论中经常可以看到类似“某某框架已死”,或者“某某框架已经足以打败所有其他的框架”的言论.事实上,每一种解决方案都有着自身独有的

云帮系列文章:核心组件介绍

本文是云帮系列文章的第三篇,前两篇分别介绍了云帮的设计思想和技术架构,您可以点击连接访问先前发布的文档. 云帮包含了很多功能组件,本篇文章针对 核心组件 加以介绍. 自动构建组件 云帮支持2种类型的自动构建:1. 源代码构建2. Dockerfile构建 两种构建方式分别走2套构建流程,其中Dockerfile的构建流程与Docker官方构建镜像的步骤一致.这里不再赘述,咱们重点介绍基于源代码的自动构建. 源代码构建背后的理论是:代码即环境 ,什么类型的代码从根本上来说已经决定了它的环境,比如说