zoukankan      html  css  js  c++  java
  • day34----网络编程基础—— 七层osi模型

    1、c/s架构与b/s架构

    (1)client/server

    客户端/服务端
    
    客户端软件send               服务端软件reve
    操作系统                     操作系统
    计算机硬件<=====物理介质=====>计算机硬件

    (2)browser/server

    浏览器/服务端
    B/S架构其实是一种特殊的C/S架构

    2、网络通信

    # 网络存在的意义就是跨地域进行数据传输
    
    网络=物理链接介质+互联网通信协议

    3、osi七层协议

    互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层

    OSI七层协议数据传输的封包与解包过程 

    (1)物理层

    主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
    
    一组物理层数据称为位(bit),单纯的电信号毫无意义,必须对其进行分组

    (2)数据链路层:enthernet以太网协议

    规定1:一组数据称之为一个数据帧
    规定2:数据帧分成两部分=》头+数据
        头包含:源地址与目标地址,该地址是mac地址
        数据包含:包含的是网络层发过来的整体的内容
    
    规定3:规定但凡接入互联网的主机必须有一块网卡,每块网卡在出厂时都烧制好一个全世界独一无二的地址,该地址称之为mac地址
    
    注意:以太网协议的工作方式是广播

    (egon,tank)(帮我叫个大保健QAQ)

    (3)网络层:IP协议

    要达到的目的:
    划分广播域
    每一个广播域但凡要接通外部,一定要有一个网关帮内部的计算机转发包到公网
    网关与外界通信走的是路由协议
    
    规定1:一组数据称之为一个数据包
    规定2:数据帧分成两部分=》头+数据
        头包含:源地址与目标地址,该地址是IP地址
        数据包含的:传输层发过来的整体的内容

    一个合法的IP地址

    一个合法的ipv4地址组成部分=ip地址/子网掩码地址
    172.16.10.1/255.255.255.0   
    172.16.10.1/24

    同一广播域的两台计算机之间的通信

    我们事先知道的是对方的IP地址,但是计算机的底层通信是基于ethernet以太网协议的mac地址通信

    需要通过ARP协议将IP地址解析成MAC地址

    计算机1                                                                                                 计算机2

    网络地址:                                                                                            网络地址:

    IP:            11000000.10101000.01010000.10000001                           IP:          11000000.10101000.01010000.100000010

    netmask:  111111111.11111111.11111111.00000000                              netmask:  111111111.11111111.11111111.00000000

    按位与:11000000.10101000.01010000.00000000                             按位与:11000000.10101000.01010000.00000000

                   192.168.80.0                                                                          192.168.80.0

    对于同一广播域的计算机,通过ARP协议拿到目标计算机的MAC地址

    自己的ip,对方的ip
    1、计算二者网络地址,如果一样,拿到计算机2的mac地址就可以了
    2、发送广播包
    发送端mac    FF:FF:FF:FF:FF:FF    192.168.80.129/24    192.168.80.130/24    数据

    不同一广播域的两台计算机之间的通信

    如果两台计算机不在同一广播域内

    ARP:
    自己的ip,对方的ip
    1、计算机二者网络地址,如果不一样,应该拿到网关的mac地址
    2、发送广播包
    发送端mac    FF:FF:FF:FF:FF:FF    192.168.80.129/24    172.16.10.10/24数据

     总结:

    ip地址+mac地址=》标识全世界范围内独一无二的一台计算机
    
    或者:
    ip地址=》标识全世界范围内独一无二的一台计算机

    通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议

    arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

    (4)传输层

    传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,
    
    那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
    
    传输层功能:建立端口到端口的通信
    
    补充:端口范围0-65535,0-1023为系统占用端口

    TCP协议:

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

    UDP协议:

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

    TCP报文

  • 相关阅读:
    [转载]RTSP in Stagefright
    FFMPEG for WMA Build Script
    Merge AACExtractor from ICS to Froyo
    查看部署在Heroku上的项目信息
    About AudioSystem Mute
    C++标准转换运算符reinterpret_cast
    纯CSS动态效果的画廊
    基于正则表达式匹配的C++语法高亮度显示
    C++标准转换运算符static_cast
    C++标准转换运算符const_cast
  • 原文地址:https://www.cnblogs.com/surpass123/p/12713959.html
Copyright © 2011-2022 走看看