网络协议概述

OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层;

其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。

通常把567归为一层的协议图示:

网络架构物理层包括 网络层,物理层_网络协议

一、物理层(physical layer) 

定义:定义了物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特。物理层常用多个规范完成对所有细节的定义。

二、链路层(link layer):本地地址(邮差)   

以太网(Ethernet)和WiFi是现在最常见的链路层协议。

定义:如何让格式化数据以进行传输,以及如何让控制对物理介质的访问,这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

在链路层,信息以帧(frame)为单位传输。在帧中,有收信地址(Source, SRC)和送信地址(Destination, DST),还有能够探测错误的校验序列(Frame Check Sequence)。当然,帧中最重要的最重要是所要传输的数据 (payload)。帧中最重要的最重要是所要传输的数据 (payload)。这些数据往往符合更高层协议,供网络的上层使用。

三、网络层(network layer)邮编(邮局)       

这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。

定义:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择,Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

让WiFi上的一台计算机和以太网上的另一台计算机通信呢?我们需要一个“中间人“:路由器。路由器有多个网卡(NIC,Network Interface Controller),每个NIC可以接入多个网络,并理解相应的连接层协议。在帧经过路由到达另一个网络的时候,路由会读取帧的信息,并改写以发送到另一个网络。所以路由器就像是在两个社区都有分支的邮局。所以邮局要求,信纸上写的地址必须是一个符合官方规定的“邮编”,也就是IP地址。每个邮局一般连接多个社区,而一个社区也可以有多个邮局,分别通往不同的社区。有时候一封信要通过多个邮局转交,才能最终到达目的地,这个过程叫做route。邮局将分离的局域网络连接成了internet,并最终构成了覆盖全球的互联网。

四、传输层(transport layer)收信人(管理员)    

上面的三层协议让不同的计算机之间可以通信。但计算机中实际上有许多个进程,每个进程都可能有通信的需求。传输层协议,比如TCP和UDP,使用端口号(port number)来识别收信人(某个进程)。在写信的时候,我们写上目的地的端口。当信到达目的地的管理员手中,他会根据传输层协议,识别端口号,将信送给不同的人。

定义:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的), 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,常常把这一层数据叫做段。

TCP和UDP协议是两种不同的传输层协议。UDP协议类似于我们的信件交流过程。TCP协议则好像两个情人间的频繁通信。一个小情人要表达的感情太多,以致于连续写了好几封信。而另一方必须将这些信按顺序排列起来,才能看明白全部的意思。TCP协议还有控制网络交通等功能。

五、会话层   

它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。

六、表示层    

         这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。

七、应用层(application layer)收信人地址(行业用语规范)

定义:是最靠近用户的OSI层,这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

通过上面的几层协议,我们已经可以在任意两个人(进程)之间进行通信。然而每个人实际上从事的是不同的行业。有的人是律师,有的人外交官。比如说律师之间的通信,会用严格的律师术语,以免产生纠纷。再比如外交官之间的通信,必须符合一定的外交格式,以免发生外交误会。再比如间谍通过暗号来传递加密信息。应用层协议是对信件内容进一步的用语规范。应用层的协议包括用于Web浏览的HTTP协议,用于传输文件的FTP协议,用于Email的IMAP等等。

 

把通信的过程比喻为寄快递:

发快递的过程(http,应用层),你向顺丰下单(第一次请求),顺丰接单(应答),你向手机小伙联系(回应应答),你将消息放进盒子里(开始封装请求,会话层),快递员封装一层盒子贴上快递单带回网店(传输层),到快递点检查是否区域快件(网络层),将快件交给运输车(链路层),各个快递转运中心(物理层),快件到达收件市转运中心(物理层),转运输车(链路层),到达区域分发(网络层),网点派送(传输层),快递员方面签收(会话层),拆开检查(表示层),收到快递(应用层)。

 

各层协议种类

物理层:
   以太网物理层 、调制解调器 、 PLC 、SONET/SDH 、G.709、光导纤维、同轴电缆 、 双绞线

数据链路层:
   Wi-Fi 、以太网、802.11 、802.16、 WiMAX、ATM、DTM 、令牌环、  FDDI、 帧中继、GPRS、EVDO、HSPA、HDL

网络层:

  •          IP(IPv4 · IPv6) Internet Protocol(网络之间互连的协议)
  •          ARP : Address Resolution Protocol即地址解析协议,实现通过IP地址得知其物理地址
  •          RARP :Reverse Address Resolution Protocol 反向地址转换协议允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址
  •          ICMP :(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息
  •          ICMPv6
  •          IGMP :Internet 组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于IP 主机向任一个直接相邻的路由器报告他们的组成员情况
  •          RIP : 路由信息协议(RIP)是一种在网关与主机之间交换路由选择信息的标准
  •          OSPF : (Open Shortest Path First开放式最短路径优先)
  •          BGP :(Border Gateway Protocol )边界网关协议,用来连接Internet上独立系统的路由选择协议
  •          IS-IS:(Intermediate System to Intermediate System Routing Protocol)中间系统到中间系统的路由选择协议
  •          IPsec:“Internet 协议安全性”是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全的通讯

传输层:

  •       TCP(Transmission Control Protocol)传输控制协议
  •      UDP (User Datagram Protocol)用户数据报协议
  •      DCCP (Datagram Congestion Control Protocol)数据报拥塞控制协议
  •      SCTP(STREAM CONTROL TRANSMISSION PROTOCOL)流控制传输协议
  •      RTP(Real-time Transport Protocol或简写RTP)实时传送协议
  •      RSVP (Resource ReSer Vation Protocol)资源预留协议
  •      PPTP ( Point to Point Tunneling Protocol)点对点隧道协议

应用层:

  •    DHCP(动态主机分配协议)
  •     DNS (域名解析)
  •     FTP(File Transfer Protocol)文件传输协议
  •     Gopher (英文原义:The Internet Gopher Protocol 中文释义:(RFC-1436)网际Gopher协议)
  •     HTTP (Hypertext Transfer Protocol)超文本传输协议
  •     IMAP4 (Internet Message Access Protocol 4) 即 Internet信息访问协议的第4版本
  •     IRC (Internet Relay Chat )网络聊天协议
  •     NNTP (Network News Transport Protocol)RFC-977)网络新闻传输协议
  •     XMPP 可扩展消息处理现场协议
  •     POP3 (Post Office Protocol 3)即邮局协议的第3个版本
  •     SIP 信令控制协议
  •     SMTP (Simple Mail Transfer Protocol)即简单邮件传输协议
  •     SNMP (Simple Network Management Protocol,简单网络管理协议)
  •     SSH (Secure Shell)安全外壳协议
  •     TELNET 远程登录协议
  •     RPC (Remote Procedure Call Protocol)(RFC-1831)远程过程调用协议
  •     RTCP (RTP Control Protocol)RTP 控制协议
  •     RTSP (Real Time Streaming Protocol)实时流传输协议
  •     TLS (Transport Layer Security Protocol)安全传输层协议
  •     SDP( Session Description Protocol)会话描述协议
  •     SOAP (Simple Object Access Protocol)简单对象访问协议
  •     GTP 通用数据传输平台
  •     STUN (Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议
  •     NTP (Network Time Protocol)网络校时协议

Github地址:https://github.com/kumataahh