• day25-2 OSI协议和socket抽象层


    OSI协议

    互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),互联网由硬件和软件组成,传输数据只能传输电信号0和1,OSI协议就是把0和1从无意义的东西变成有意义的东西。。

    按照功能不同,分工不同,人为的分层七层。每一层都运行不同的协议,还有人把它划成五层、四层。

    七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

    五层划分为:应用层、传输层、网络层、数据链路层、物理层。

    四层划分为:应用层、传输层、网络层、网络接口层。

    每层运行常见的无论设备

    物理层

    • 用于计算机与计算机之间传输数据,如光缆/网线:传输信号,连接两台计算机

    • 客户端将011111001111100111110011111001111100111110011111传输给服务端

    数据链路层

    • 数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
    • 数据链路层的功能:定义了电信号的分组方式

    以太网协议

    ethernet规定:一组电信号构成一个数据报,叫做'帧',每一数据帧分成:报头head和数据data两部分

    • head包含:(固定18个字节)
      • 发送者/源地址,6个字节
      • 接收者/目标地址,6个字节
      • 数据类型,6个字节
    • data包含:(最短46字节,最长1500字节)
    • 数据报的具体内容:head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

    Mac地址

    ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即Mac地址

    • Mac地址:每块网卡出厂时都被烧制上一个世界唯一固定不变的Mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

    广播地址

    你一定知道自己的mac地址,还有收件人的mac地址,在局域网内通过某一台设备(交换机),但是交换机不知道mac地址对应的计算机是哪一台,交换机就会以广播的形式发送给所有的计算机,收件人的计算机收到了就会解析这条命令,拿到内容了。之后交换机会记录两个mac地址

    网络层

    • 让不同局域网下面的计算机连接在一起
    • ip地址:mac地址无法连接其他局域网内的计算机,因为mac地址只被交换机识别,然后不同局域网的交换机不一样,所以现在定义一个新的地址表明是哪个局域网
    • Mac地址是用来标识你这个教室的某个位置,IP地址是用来标识你在哪个教室(哪个局域网),mac地址(局域网)+IP地址(互联网)就能找到全世界独一无二的电脑

    数据链路层中会把网络层的数据包封装到数据链路层的数据位置,然后再添加上自己的包头,再发给物理层,物理层发给网关,网关再发给对方教室的网关,对方教室的网关收到后在那个教室做广播。

    获取对方Mac地址(ARP协议)

    局域网内获取对方Mac地址:

    • 目标Mac:12个F代表的是一种功能,这个功能就是获取对方的Mac地址
    • 通过广播的方式发送,只有IP地址是172.16.10.11的人返回它的Mac地址,其它人全部丢弃
    • 发回来的源Mac改成目标IP的Mac地址,同时把Mac地址放在数据部分

    跨网络获取对方Mac地址:

    目标IP就变成了网关的IP。网关的IP在计算机上配死了,可以轻松获取

    注意:网关帮你去找飞哥,但对用户来说,由于速度太快我们根本就感觉不到网关的存在。

    传输层

    • 网络层的IP帮我们区分子网,以太网层的Mac帮我们找到主机,端口号用来找到一个固定的应用程序
    • 端口:即应用程序与网卡关联的编号
    • 传输层功能:建立端口到端口的通信

    补充:端口范围0-65535,0-1023为系统占用端口,Mac地址+IP地址+端口,就能确定世界上独一无二的一台计算机上的应用程序

    TCP协议

    • 可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    UDP协议

    • 不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    应用层

    • 应用层功能:规定应用程序的数据格式,将0和1转换成具体的功能

    socket抽象层

    客户端和服务端的应用程序想通信,两者传输的数据必须是一样的。

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

  • 相关阅读:
    【u020】Couple number
    【HDU5748】Bellovin
    【CF706C】Hard problem
    【u021】广义斐波那契数列
    【u024】没有上司的舞会
    【u025】贝茜的晨练计划
    【u026】房间最短路问题
    Core Data 数据出现Fault
    Core Data 数据出现Fault
    非常优秀的Javascript(AJAX) 开发工具:Aptana
  • 原文地址:https://www.cnblogs.com/863652104kai/p/11085299.html
Copyright © 2020-2023  润新知