博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机网络中的TCP/IP协议与OSI模型
阅读量:4679 次
发布时间:2019-06-09

本文共 3633 字,大约阅读时间需要 12 分钟。

一、TCP/IP协议

     事实上,TCP/IP协议是一个协议集,由很多协议组成。TCP和IP是这个协议集中的两个协议。TCP/IP协议集中每一个协议涉及的功能,都用程序来实现。TCP协议和IP协议有对应的TCP程序和IP程序。

     如果一个网络协议涉及硬件的功能,通常就被叫做标准,而不再称为协议了。最典型的标准就是IEEE802.3,它是以太网的技术标准。现在的网络工程师只要了解TCP/IP一个协议,就可以应付99%的网络技术问题了。

TCP/IP协议是互联网中使用的协议,现在几乎成了Windows、UNIX、Linux等操作系统中唯一的网络协议了。IP地址是一个层次化的地址,既能表示主机的地址,也表现出这个主机所在网络的网络地址。

  每个网络都必须有自己的网络地址。我们都是先获得网络的网络IP地址,然后才用这个网络IP地址为这个网络上的各个主机分配主机IP地址的。

主要的TCP/IP协议有:

  1、应用层:FTP、TFTP、Http、SMTP、POP3、SNMP、DNS、Telnet

      FTP:文件传输协议,用于主机之间的文件交换。FTP使用TCP协议进行数据传输,是一个可靠的面向连接的文件传输协议。FTP支持二进制文件和ASCII文件。

      TFTP:简单文件传输协议,它比FTP简单,是一个非面向连接的协议,使用UDP进行传输。该协议多用在局域网中,交换机和路由器这样的网络设备用它把自己的配置文件传输到主机上。

      SMTP:简单邮件传输协议。POP3:这也是个邮件传输协议,本不属于TCP/IP协议。POP3比SMTP更科学,微软等公司在编写操作系统的网络部分时,也在应用层编写了相应的程序。

      Telnet:远程终端仿真协议,可以使一台主机远程登录到其它机器,成为远程主机的显示和键盘终端。由于交换机和路由器等都没有自己的显示器和键盘,为了对它们进行配置就需要使用Telnet。

      DNS:域名解析协议,根据域名,解析出对应的IP地址。

      SNMP:简单网络管理协议,网管工作站搜集、了解网络中交换机、路由器等设备的工作状态所使用的协议。

      NFS:网络文件系统协议,允许网络上其它主机共享某机器目录的协议。

      TCP/IP协议的应用层协议有可能使用TCP协议进行通讯,也可能使用更简易的传输层协议UDP完成数据通讯。

   2、传输层:TCP、UDP   传输层是TCP/IP协议集中协议最少的一层,只有传输控制协议TCP和用户数据报协议UDP。

      TCP协议完成5个主要功能:端口地址寻址、连接的建立、维护与拆除、流量控制、出错重发、数据分段。

     端口地址寻址:端口地址寻址是对应用层程序寻址。

     网络中的交换机、路由器等设备需要分析数据报中的MAC地址、IP地址,甚至端口地址。也就是说,网络要转发数据会需要MAC地址、IP地址和端口地址的三重寻址。

     因此在数据发送之前,需要把这些地址封装到数据报的报头中。当数据报到达目标主机后,链路层的程序会通过数据报的帧报尾进行CRC校验。校验合格的数据帧就去掉帧报头向上交给IP程序。

     IP程序去掉IP报头后,向上把数据交给TCP程序。等TCP程序去掉TCP报头后,TCP程序就通过TCP报头中源主机指出的端口地址了解到发送主机需要目标主机的哪个应用层程序接收这个数据报。

 

    TCP/IP规定端口号的编排方法:低于255的编号用于FTP、Http这样的公共应用层协议。255到1023的编号提供给操作系统开发公司,为市场化的应用层协议编号。大于1023的编号用于普通应用程序。

    通常,客户机在给自己的程序编端口号时,随机使用一个大于1023的编号。

    SYN和ACK是TCP报头中报文性质码的连接标志位。建立连接时SYN标志为置1、ACK标志为置0,表示本报文包是同步synchronization包。确认连接的包ACK置1、SYN置1,表示报文包是个确认acknowledgment包。

    为了在一段时间内没有数据发送但还需要保持连接而发送Keepalive包,被称为连接的维护。在实际中,TCP报头中的窗口字段不是用数据段的个数来说明大小,而是以字节数为大小的单位的。

    UDP只保留了端口地址寻址和数据分段两个功能。UDP报头的格式非常简单,核心内容只有源端口地址和目标端口地址两个字段。例如DNS、SNMP、TFTP、DHCP。

  3、网络层:IP、ARP(地址解析协议)

  TCP/IP协议集中最重要的是IP和ARP。除这两个协议外网络层还有一些其它的协议如RARP(逆向地址解析协议)(DHCP动态ip地址分配)ICMP(InternetControlMessageProtocol)IGRP、OSPF(属于路由协议)

  POP3、DHCP、IGRP、OSPF虽然不是TCP/IP协议集的成员,但是都是非常知名的网络协议,我们仍然可以把它们放到TCP/IP协议的层次中来。

  ARP协议:事实上,应用程序在发送数据的时候,只知道目标主机的IP地址,无法知道目标主机的MAC地址。ARP协议的程序可以完成用目标主机的IP地址查到它的MAC地址的功能。

  ARP程序会将这次查询的结果保存起来。ARP程序保存网络中其它主机MAC地址的表称为ARP表。ARP程序在局域网中是一个非常重要的程序。

  在主机中的ARP程序是操作系统的一部分。Windows、UNIX、LINUX这样的操作系统中都有ARP程序。

二、OSI模型

      ISO发布了著名的开放系统互联参考模型(Open System Interconnection Reference Model),简称OSI。OSI模型详细规定了网络需要实现的功能、实现这些功能的方法、以及通讯报文包的格式。

OSI模型把网络功能分成7大类,并从顶到底描述了数据发送前,在发送主机中被加工的的过程。待发送的数据首先被应用层的程序加工,然后下放到下面一层继续加工。最后,数据被装配成数据帧,发送到网线上。

    1、第1层-物理层:提供建立计算机和网络之间通讯所必须的硬件电路和传输介质,主要是网线或者光纤。

    2、第2层-数据链路层:提供MAC地址寻址和介质访问控制以及差错检测,控制数据的发送与接收。主要设备有网桥、交换机。

    3、第3层-网络层:提供IP地址寻址,支持网间互联的所有功能。主要设备是路由器、三层交换机。

    4、第4层-传输层:提供端口地址寻址(tcp),建立、维护、拆除连接、流量控制、出错重发、数据分段。

    5、第5层-会话层:提供网络会话的顺序控制,解释用户和机器名称也在这层完成。

    6、第6层-表示层:定义数据的表示方法,使数据以可以理解的格式发送和读取。

    7、第7层-应用层:提供与用户应用程序的接口port。为每一种应用的通讯在报文上添加必要的信息。

OSI的第7、4、3层在TCP/IP协议中都有对应的层,对于第2、1层,IEEE提供的802标准有具体的实现。

TCP/IP协议主要是在网络操作系统中实现的。主机中应用层、传输层和网络层的任务由TCP/IP程序来完成的,而OSI模型最下面两层数据链路层和物理层的功能则由网卡制造厂商的程序和硬件电路来完成。

IEEE802标准:规定了数据链路层和物理层的功能是:

    物理地址寻址:发送方需要对数据包安装帧报头,将物理地址封装在帧报头中。接收方能够根据物理地址识别是否是发给自己的数据。

    介质访问控制:如何使用共享传输介质,避免介质使用冲突。知名的局域网介质访问控制技术有以太网技术、令牌网技术、FDDI技术等。

    数据帧校验:数据帧在传输过程中是否受到了损坏,丢弃损坏了的帧。

    数据的发送与接收:操作内存中的待发送数据向物理层电路中发送的过程。在接收方完成相反的操作。

  IEEE802根据不同功能,有相应的协议规范,如标准以太网协议规范802.3、无线局域网WLAN协议规范802.11等,统称为IEEE 802x标准。

OSI模型把数据链路层又划分为两个子层:逻辑链路控制Logical Link Control(LLC)子层和介质访问控制Media Access ControlMAC)子层。LLC子层的任务是提供网络层程序与链路层程序的接口,使得链路层主体MAC层的程序设计独立于网络层的具体某个协议程序。MAC层完成所有OSI对数据链路层要求完成的功能:物理地址寻址、介质访问控制、数据帧校验、数据发送与接收的控制。

转载于:https://www.cnblogs.com/linuxlernen/p/3427774.html

你可能感兴趣的文章
Git Day02,工作区,暂存区,回退,删除文件
查看>>
Windows Phone 7 Coding4Fun控件简介
查看>>
Nginx 常用命令总结
查看>>
hall wrong behavior
查看>>
Collection集合
查看>>
【C++】const在不同位置修饰指针变量
查看>>
github新项目挂历模式
查看>>
编写jquery插件
查看>>
敏捷开发笔记
查看>>
学前班
查看>>
关于自关联1
查看>>
hdu-1814(2-sat)
查看>>
谷歌浏览器,添加默认搜索引擎的搜索地址
查看>>
数据结构化与保存
查看>>
为什么需要Docker?
查看>>
国内5家云服务厂商 HTTPS 安全性测试横向对比
查看>>
how to control project
查看>>
转 python新手容易犯的6个错误
查看>>
第四节 -- 列表
查看>>
决策树
查看>>