zoukankan      html  css  js  c++  java
  • OSI与TCP/IP协议簇的简要介绍

    OSI与TCP/IP

    二者区别

    • OSI参考模型定义计算机通信每层的功能,不是协议。
    • TCP/IP协议是具体的协议,实现了OSI参考模型规定的功能。 参考下图

    OSI参考模型每层功能

    • 应用层,根据互联网中需要通信的应用程序的功能,定义客户端和服务端程序通信的规范,应用层向表示层发出请求。
    • 表示层,定义数据格式、是否加密或压缩。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。
    • 会话层,它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的。
    • 传输层,常规数据递送,面向连接或无连接。面向连接实现可靠传输,比如TCP协议,面向无连接,提供不可靠传输,比如UDP协议,netstat。
    • 网络层,根据网络地址为数据包选择选择转发路径。网络层为传输层提供服务,只是尽力转发数据包,不保证不丢包,也不保证按顺序到达接收端,可用tracert查看路由路径。
    • 数据链路层,数据链路层常简称链路层,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要专门的链路层的协议。
    • 物理层,在物理层上所传输的数据单位是比特。发送方发送1(或0)时,接收方应该收到1(或0),而不是0(或1)。因此物理层要考虑用多大电压代表“1”或“0”,以及接收方如何识别出发送方所代表的比特。物理层还要确定连接电缆的的插头应当有多少根引脚以及各条引脚应如何连接。

    IT人员与OSI的关系

    • 程序员开发网络应用程序,他们负责解决应用程序之间如何通信,通信是否需要加密和压缩,避免出现乱码。从这个角度说程序员的工作是OSI参考模型的应用层、表示层和会话层
    • 网络工程师调试路由器和交换机,路由器属于网络层设备,交换机属于数据链路层设备,从这个角度说网络工程师工作是OSI参考模型的网络层和数据链层。
    • 通信工程师专门研究如何在链路上如何更快的速率通信,其工作可以可以认为是OSI参考模型的物理层。

    简单理解表示层

    • 如果客户端和服务端程序交换数据,使用的字符集不一样,会出现乱码,这类故障就属于OSI参考模型的表示层故障。

    简单了解传输层

    • 传输层的TCP协议是可靠传输,通信的之前客户端需要服务器建立连接,通信结束释放连接。
    • 使用netstat –n可以查看计算机建立的TCP连接(传输层),可以看到建立TCP连接的进程。
    • 如果怀疑中了木马,可以根据netstat –nob查看建立连接的进程。再用msconfig查看服务,进而查杀木马。

    物理设备与OSI模型

    • 计算机工作在应用层、传输层和网络层,计算机的网卡工作在数据链路层和物理层。
    • 集线器(Hub)这种设备工作在物理层,在发送数据包时以广播的形式发送,不处理MAC地址和IP地址,导致所有的设备都可以收到,设备的网卡充当门卫拦住数据帧(MAC地址)。集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。同时集线器采用了CSMA/CD(载波帧听多路访问/冲突检测)协议,CSMA/CD为MAC层协议,所以集线器也含有数据链路层的内容。
    • 路由器接口工作在物理层和数据链路层,但路由器根据IP首部转发数据包,将数据帧再封装为数据包,所以说路由器工作在网络层
    • 交换机(Switch)根据MAC地址转发帧,MAC地址属于数据链路层地址,所以所交换机工作在数据链路层。当然交换机的接口也有物理层功能。

    计算机与服务器通信示意图

    MAC地址与IP地址

    • 目标MAC地址决定了数据帧下一跳由哪个网络设备接收
    • 目标IP地址决定了数据包最终到达哪一台计算机

    什么时候可以不用IP地址呢?

    • 在同一个网段的时候,可以用集线器连接多台计算机,只使用MAC地址,但在互联网中是不切实际的,这时候就可以使用路由器来划分网段。

    IOS参考模型对网络排错

    • OSI参考模型中底层为其上层提供服务,因此排除网络故障也应该从底层到高层依次排查。

    1.先检查物理层,也就是网线是否接好或者松动,水晶头(橙白 橙 绿白 蓝 蓝白 绿 棕白 棕)中其中有四根是发送和接受,查看本地连接状态已发送和已接收是否正常。

    2.再检查数据链路层,比如MAC地址是否冲突,虽然网卡芯片固定了MAC地址,但可更改ARP缓存表中的MAC地址,这是因为MAC地址是唯一的,但是网卡毕竟是个硬件,需要软件来支撑,即操作系统来识别.而将操作系统识别出来的MAC地址是可以更改的,它只不过是一个字符串。具体操作方法是在“本地连接”图标上单击右键,选择“属性”,会弹出一个“本地连接属性”的对话框,单击“配置”按钮,选择“高级”,选中左栏“属性”中“Network Address”(其实,并非所有的网卡,对物理地址的描述都用“Network Address”,如Intel的网卡便用“Locally Administered Address”来描述,只要在右栏框中可以找到“值”这个选项就可以了)修改MAC地址;或者是否接入了正确的VLAN(Virtual Local Area Network);或者网卡的带宽与交换机的带宽不相适应,即连接口配置不对;或者非对称数字用户线路(ADSL,Asymmetric Digital Subscriber Line)拨号上网不允许,即欠费。

    3.再检查网络层,输入Ipconfig /all查看IP地址、子网掩码(一是计算是否在同一网段,二是区别网络标识和主机标识)、网关(找下一跳地址)、DNS是否设置正确。再ping Internet上的网站域名,测试域名解析是否正常。测试时应用层,telnet 服务对应的端口,看看是否能够成功。

    4.表示层故障,显示乱码问题

    5.应用层故障,客户端软件的配置问题,如病毒修改IE浏览器中“连接”下的“局域网设置”的未知代理导致无法联网。。

    OSI参考模型与网络安全

    物理层安全 防止非法计算机接入公司网络,如无线AP(Access Point)(密码连接验证用户身份是数据链路层的安全)

    数据链路层安全 如交换机可在接口上设置MAC验证,划分VLAN等身份验证。

    网络层安全 如路由器ACL(访问控制列表)可以有效地控制用户对网络的访问,从而最大程度地保障网络安全,当然计算机也可以实现访问控制,设置网络安全。

    应用层安全 要求程序员开发安全的应用程序

    TCP/IP协议分层

    • TCP/IP协议是互联网通信的工业标准,其实它是一组协议,TCP和IP协议是这一组协议的代表。这些协议按功能分为应用层协议、传输层协议、网络层协议、数据链路层协议。

    如下图

    • TCP/IP协议体系结构就是包括哪些协议以及他们之间的关系。

    • 如果底层协议能够支持多种上层协议的封装,在底层协议必然要有一个字段用来指明封装的是哪种上层协议。否则接收端就不知道提交给上层的那个协议。

    TCP/IP中知名的应用层协议

    • 超级文本传输协议--HTTP,用于访问Web服务 tcp。
    • 安全的超级文本传输协议--HTTPS,能够将HTTP协议通信进行加密访问。
    • 简单邮件传输协议--SMTP,用于发送电子邮件 tcp。
    • 邮局协议版本3 --POP3,用于接收电子邮件。
    • 域名解析协议--DNS,用于域名解析 udp。
    • 文件传输协议--FTP,用于在Internet上传和下载文件,tcp。
    • 简单文件传输协议--TFTP,在客户机与服务器之间进行简单文件传输的协议 udp。
    • 远程登录--telnet协议,用于远程配置网络设备和Linux系统。
    • 动态主机配置协议--DHCP,用于计算机自动请求IP地址。

    为什么要分层设计?

    • 各层之间相互独立。
    • 灵活性好。
    • 结构上可以分开。
    • 易于实现和维护。
    • 能促进标准化工作。

    实际运用示例

    • 计算机通信按功能分层的好处就是当某一层有变换不会波及其他层。比如单位的网络IP地址重新规划,不会影响企业内外的服务的访问。要实现这个分层,就不要在应用层包含网络层的信息,比如开发的客户端程序连接服务器就不要写服务器的IP地址,而是写服务器的名称。如果将服务器的IP地址写进应用程序,就没有采纳OSI参考模型的分层思想。网络一旦调整,就需要修改客户端程序。这就是网络层变换引起应用层变化了。
  • 相关阅读:
    Java的synchronized的同步代码块和同步方法的区别
    关于java字节码框架ASM的学习
    说说cglib动态代理
    Java虚拟机-JVM各种参数配置大全详细
    Permanent Space 和 Heap Space
    OOM三种情况
    Java性能调优(一):调优的流程和程序性能分析
    数学之路-python计算实战(17)-机器视觉-滤波去噪(中值滤波)
    使用 Pascal 脚本编写网页, PWP 项目
    android 4.0主线程訪问网络问题
  • 原文地址:https://www.cnblogs.com/huxiaobai/p/13417127.html
Copyright © 2011-2022 走看看