1、Internet历史

1. 1968年由美国ARPA机构提出"资源共享计算机网络”,让ARPA的计算机互联起来,叫做阿帕网;
2. 1974年,第一个TCP协议详细说明发布了。
3. 一个 TCP 协议不能满足,TCP 协议分成了 TCP / IP 两个协议。
4. TCP / IP 网络分层  ----- OSI 七层网络模型、TCP/IP四层模型;

2、OSI七层模型(Open System Interconnect)

  OSI七层模型:是ISO (International Organization for Standardization )组织在1985年研究的网络互连模型。其目的就是推荐所有公司使用这个规范来控制网络,这样所有公司都有相同的规范,就能互联了。

/

3、TCP/IP 四层模型 就是 对七层模型进行了合并

物理层

  • 物理介质,实实在在的物理链路,它的主要作用是传输比特流,就是从1/0转化为电流强弱来进行传输,到达目的之后再转化为1/0,也就是我们常说的数模转换。
  • 常见的物理介质有光纤、双绞线,以及无线电波,物理介质的不同决定了电信号的传输带宽、速率、传输距离以及抗干扰性等等。

数据链路层

对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。

  1. 比特流(01)分组,8bit一组,依次帧的数据格式发送;
  2. 怎么知道是发送给我的么?---网卡--MAC地址--身份证(唯一) (目的mac+源mac地址)。--寄信(收件人:寄件人)

网络层

  • A -BCDE- F 如何通信?  A 如果要到 F 怎么选择最好路径? 怎么知道MAC地址?
  • 网络层解决的问题:
    • 1. 发送者如何知道接收者的MAC地址?

      • ARP协议 :地址解析协议(address resolution protocol)    
    • 2. 发送者如何知道接收者和自己同属一个子网?
      • 通过IP协议  
    • 3. 如果接收者和自己不在同一个子网,数据包如何发给对方?
      • 通过一组路由协议(route) 为了解决这些问题,网络层引入了三个协议,分别是IP协议、ARP协议、路由协议  
      • 常用的路由协议包括:
        • 静态路由、BGP路由、OSPF路由      

传输层

  • 传输层的主要工作是定义端口,标识应用程序身份,并将数据包交给对应的应用程序实现端口到端口的通信,并且传输层引入了TCP/UDP协议。

    • 1. 如果有大量数据包、数据包大?时间很长,网络中断,怎么控制重新传输?怎么确保数据包正确完整---传输层

      • 传输层封装数据包,通过定义的 TCP、UDP 协议实现按序一个一个发送,保证数据完整正确性;    
    • 2. QQ发消息,你必须使用QQ接受消息,才可以正常通信;但是电脑中不是只运行了QQ,还有其他程序,怎么确定由谁来处理消息
      • 传输层定义端口的概念-- HTTP-tcp-80端口、https是tcp的443端口?--交给特定应用处理    

会话层

  • 会话层提供的服务可使应用建立和维持会话,并能使会话获得同步;

    • 自动寻址,自动发送,实现断点  续传  
    • 会话层没有协议  
    • 会话层、表示层都是为应用层服务的  

表示层

  • 表示层的主要作用之一是 为异种机通信提供一种公 共语言,以便能进行互操作

    • 翻译--实现不同系统之间的通信  
    • 会话层、表示层为应用层服务的  

应用层

  • 定义数据格式并按照对应的格式解读数据。前面所述的三层负责处理网络通讯的相关细节,这部分需要稳定高效,因此它们是在操作系统的内核空间中,而应用层是在用户空间实现的,负责处理众多业务逻辑,如文件传输、网络管理。
  • 定义了各种协议来规范数据格式。---HTTP,FTP ,DNS ,SMTP

数据传输过程 

浏览器输入百度,百度给我返回了一个页面,这个过程是怎么实现的?

右侧封装:主机A

应用层:电脑A在浏览器里输入了一个百度 url 地址,应用层实现输入了一个网址想要去访问百度,会给到

传输层,在数据包的前面封装一个 tcp 的头部和端口,会给到

网络层,把 ip 头部封装到 TCP 头部的外面,IP自带 源IP地址 和 目的 IP 地址,会给到

数据层,会给它封装一个 MAC 的地址(以太头部),接着去寻找,会给到

物理层,会转换为比特流(010101)这样的电信号,在传给百度的服务器

左侧解封装:百度服务器

我们在物理层重组为帧,就可以看到 MAC 的地址,把源地址进行拆开,得到里面得IP,会传给网络层;

网络层看到目的IP是给自己的,然后把IP头部拆开,看到TCP头部端口号,在传给传输层;

传输层看下是哪个端口,看到是 tcp80 的端口,会交给 http 的协议,交给应用层;

http协议来处理,http处理之后发现是访问百度的,就会返回一个百度的页面

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/   谢谢!!*******

网络基础:OSI 七层模型、TCP/IP 四层模型的更多相关文章

  1. OSI七层与tcp/ip四层

    1)OSI七层模型 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代 ...

  2. OSI七层与TCP/IP四层(小结)

    OSI 七层模型 我们一般使用的网络数据传输由下而上共有七层,分别为物理层.数据链路层.网络层.传输层.会话层.表示层.应用层,也被依次称为 OSI 第一层.第二层.⋯⋯. 第七层. 各层功能简介 1 ...

  3. OSI七层和TCP/IP四层的关系、TCP与UDP、HTTP、Socket

    HTTP(应用层协议):超文本传输协议,HTTP协议是建立在TCP协议之上的一种应用. HTTP协议详细解释 2Http详解 TCP(面向连接的传输层协议):transmission control ...

  4. 计算机网络分层(OSI七层、 TCP/IP四层)

  5. OSI七层与TCP/IP五层

    OSI七层与TCP/IP五层网络架构详解 OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 ...

  6. 温故知新--计算机网络 iso/osi七层模型 tcp/ip四层模型

    ISO七层模型由下至上为1至7层,分别为: 应用层(Application layer) 表示层(Presentation layer) 会话层(Session layer) 传输层(Transpor ...

  7. OSI七层与TCP/IP五层网络架构详解

      引用自:http://www.2cto.com/net/201310/252965.html   OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天 ...

  8. OSI七层与TCP/IP五层网络架构

    OSI七层模型   OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代 ...

  9. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  10. osi七层与TCP\IP协议

    层次划分的方法 1.网络的每层应当具有相对独立的功能(便于排错)这个功能用不了必然是你这层处理问题 2.梳理功能之间的关系,使上一个功能可以实现为另一个功能提供必要的服务,从而形成系统的层次结构.为提 ...

随机推荐

  1. 如何关闭 Mac OS X EI Capitan 系统文件保护

    在修改 Mac OS X EI Capitan 系统的某些系统文件的过程中,你可能会遇到即使你加了 sudo 以管理员身份去操作页会被拒绝, 这是一个名为 SIP(System Integrity P ...

  2. 小程序view标签靠右方法

    第一种:不浮动靠右 text-align:right; 第二种:浮动靠右 float:right;

  3. BUU re1

    先shift+F12定位到关键句 然后crtl+X查看函数的交叉调用 定位到该函数处 F5查看伪代码 插入一段re1 re2题中都遇到的技巧: 很多时候出现的数字是asc码,热键R可以把数字转化成字母 ...

  4. 题解 nflsoj489 【六校联合训练 CSP #15】小D与随机

    题目链接 考虑枚举好点的集合.此时要考虑的问题是如何填入\(1\sim n\)这些数使得恰好我们枚举到的这些点是好点,即:求出有多少种合法的填数方案. \(1\)号点一定是好点.那么除\(1\)号点外 ...

  5. php截取指定两个字符之间的字符串

    //截取指定两个字符之间的字符串 public function cut($begin,$end,$str){ $b = mb_strpos($str,$begin) + mb_strlen($beg ...

  6. jsp获取web的跟路径

    我实现了一个listener,此listener在tomcat启动的时候读取项目的配置文件,配置文件是xml.但是读取解析的功能是在另一个工具类实现的. 这个普通的工具类B,如何获取到当前web的跟路 ...

  7. 99乘法表(for循环嵌套)

    计算乘法表 两个数相乘,外层循环代表被乘数,控制行数:内层代表乘数,控制列数. 循环嵌套,变量名不可以重复. 使用 break 语句让输出的乘法表更简洁. 使用 String 变量,做 String ...

  8. 1.Maven分模块,分工程管理,多Web应用合并war包

    Eclipse 创建Maven工程 修改POM文件   Eclipse 创建Module工程 以此类推,创建Maven 的Modules web工程goodsmgrweb,创建Maven的Module ...

  9. JS: 复选框——ALL与A、B、C(选中ALL同时选中各子项)

    <!DOCTYPE html><html> <head>  <meta charset="utf-8">  <title> ...

  10. CSU 1216 异或最大值

    求n个数里面,求两两异或的最大值 直接来肯定会超时 既然要异或最大值,那么两个数的二进制肯定是正好错开为好...为了能快速找到错开的数,确实有点难想到,用字典树,按二进制数插入,再一个一个在字典树里面 ...