zoukankan      html  css  js  c++  java
  • 浅谈OSI七层网络模型和TCP/IP四层模型

    OSI七层网络模型

      OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。

     

    OSI七层模型

    功能

    对应的网络协议

    应用层

    应用层是网络体系中最高的一层,也是唯一面向用户的一层,也可视为为用户提供常用的应用程序,每个网络应用都对应着不同的协议

    HTTP、TFTP, FTP, NFS, WAIS、SMTP

    表示层

    主要负责数据格式的转换,确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密,同时也对应用层的协议进行翻译

    Telnet, Rlogin, SNMP, Gopher

    会话层

    负责网络中两节点的建立,在数据传输中维护计算机网络中两台计算机之间的通信连接,并决定何时终止通信

    SMTP, DNS

    传输层

    是整个网络关键的部分,是实现两个用户进程间端到端的可靠通信,处理数据包的错误等传输问题。是向下通信服务最高层,向上用户功能最底层。即向网络层提供服务,向会话层提供独立于网络层的传送服务和可靠的透明数据传输。

    TCP, UDP

    网络层

    进行逻辑地址寻址,实现不同网络之间的路径选择,IP就在网络层

    IP, ICMP, ARP, RARP, AKP, UUCP

    数据链路层

    物理地址(MAC地址),网络设备的唯一身份标识。建立逻辑连接、进行硬件地址寻址,相邻的两个设备间的互相通信

    FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,帧中继

    物理层

    七层模型中的最底层,主要是物理介质传输媒介(网线或者是无线),在不同设备中传输比特,将0/1信号与电信号或者光信号互相转化

    IEEE 802.1A, IEEE 802.2到IEEE 802

    数据发送时从上至下封装,收到数据包后从下至上解包。

    TCP/IP四层模型

    TCP/IP四层模型:TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。

     

    常见的网络相关的协议

    DNS:域名解析协议 www.baidu.com

    SNMP(Simple Network Management Protocol)网络管理协议

    DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,它是在TCP/IP网络上使客户机获得配置信息的协议

    FTP(File Transfer Protocol)文件传输协议,它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法。

    TFTP(Trivial File Transfer Protocol):小文件传输协议

    HTTP(Hypertext Transfer Protocol ):超文本传输协议

    HTTPS(Secure Hypertext Transfer Protocol):安全超文本传输协议,它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作.

    ICMP(Internet Control Message Protocol):Internet控制信息协议,互联网控制报文协议

    ping  ip定义消息类型有:TTL超时、地址的请求与应答、信息的请求与应答、目的地不可到达

    SMTP(Simple Mail Transfer Protocol):简单邮件传送协议

    TELNET Protocol:虚拟终端协议

    UDP(User Datagram Protocol):用户数据报协议,它是定义用来在互连网络环境中提供包交换的计算机通信的协议

    TCP(Transmission Control Protocol):传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议  log转发:开启一个协议:tcp(三次握手和四次挥手) 

    TCP三次握手协议

    TCP的连接建立是一个三次握手过程,目的是为了通信双方确认开始序号,以便后续

    通信的有序进行。主要步骤如下:

    1. 连接开始时,连接建立方(Client)发送SYN包,并包含了自己的初始序号a;——连接请求

    2. 连接接受方(Server)收到SYN包以后会回复一个SYN包,其中包含了对上一个a包

    的回应信息ACK,回应的序号为下一个希望收到包的序号,即a+1,然后还包含

    了自己的初始序号b;——请求确认

    3. 连接建立方(Client)收到回应的SYN包以后,回复一个ACK包做响应,其中包含了

    下一个希望收到包的序号即b+1。——连接确认

    TCP四次挥手

    TCP终止连接的四次握手过程如下:

    1. 首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到这

    个FIN)执行被动关闭。

    2. 当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一

    样,一个FIN将占用一个序号。

    3. 同时TCP服务器还向应用程序(即丢弃服务器)传送一个文件结束符。接着这个

    服务器程序就关闭它的连接,导致它的TCP端发送一个FIN。

    4. 客户必须发回一个确认,并将确认序号设置为收到序号加1。

     总结

      TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。
    一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。
    我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接
    和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包
    确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A
    才向主机B正式发送数据。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,
    而是直接就把数据包发送过去!  
      

     UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,
    其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。
    例如,在默认状态下,一次“ping”操作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到
    后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信
    效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。 tcp协议和udp协议的差
    
    
     
    TCP 
    UDP 
    是否连接
    面向连接
     面向非连接
    传输可靠性
     可靠 
    不可靠
    应用场合
    传输大量数据
    视频,语音通讯,或网络环境很好,比如局域网中通讯可以使用
    udp。数据传输完整性,可以通过应用层的软件来校对就可以了。
    少量数据 
    传文件,数据完整性要求高
    速度
    对系统资源
    的要求
    较多      
       较少

         结构

      信息包有20个字节 UDP信息包的标题很短,只有8个字节
         

    TCP和UDP常用端口号名称

    可以查询 vim /etc/services    此文件中,包含所有常见端口号及服务名称

    21

    ftp

    文件传输服务

    22

    ssh

    安全远程连接服务

    23

    telnet

    远程连接服务

    25

    smtp

    电子邮件服务

    53

    DNS

    域名解析服务,有tcp53也有用udp53端口传输

    80

    http

    web服务

    443

    https

    安全web服务

     
  • 相关阅读:
    sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用于 in 条件,方法和调用
    JavaScript Invalid Date Verify
    Jquery总结
    java中的异常和处理
    联系 管理 Hibernate4+Spring JPA+SpringMVC+Volecity搭建web应用(三)
    Hibernate4+Spring JPA+SpringMVC+Volecity搭建web应用(二)
    Hibernate4+Spring JPA+SpringMVC+Volecity搭建web应用(一)
    Spring 框架整理
    java 三大框架 介绍
    struts2 拦截器的注册在strut.xml中
  • 原文地址:https://www.cnblogs.com/tomsongqi/p/10696648.html
Copyright © 2011-2022 走看看