第八章 socket网络编程(1):网络协议基础

网络是什么:

  • 互联网协议:为了互联网通信方式统一而制定的协议,只要程序遵循这个标准组织数据,就可以和任何对象通信

  • 互联网协议(分法不同可以分拆成4,5,7层):
    • OSI7层协议:
      1. 应用层
      2. 表示层
      3. 会话层
      4. 传输层
      5. 网络层
      6. 数据链路层
      7. 物理层
    • 4层TCP/IP协议:
      1. 应用程序
      2. 传输层
      3. 网络层
      4. 接口层
    • 5层协议:
      1. 应用层:产生数据
        • 对数据包的处理:产生一个应用层的报头和数据
        • 可以使用任意协议:http,ftp,自定义协议 等
      2. 传输层:
        • 对数据包的处理:把数据层的端口头和数据看做为数据,然后加一个端口(传输层)报头
        • 使用TCP/UDP端口协议:
        • 端口:端口范围(0~65535),一台计算机上每启动一个软件就会对应一个端口。所以IP和端口就可以确定特定的计算机的特定软件
      3. 网络层:
        • 对数据包的处理:把传输层的端口头和数据看做为数据,然后加一个IP报头
        • 使用IP协议:
          • IP协议的数据分为IP报头(源IP地址,目标IP地址,数据描述信息)和数据部分
        • 使用ARP协议:通过IP获取MAC地址
      4. 数据链路层:将物理层的电信号分组,使其有意义,使用Ethernet协议来做这个
        • 对数据包的处理:把网络层的IP报头和数据看做为数据,然后加一个数据链路层的报头
        • 使用协议Ethernet(以太网):
          • 一组电信号称为数据报/数据帧
          • 一个数据报分为报头(源地址:6字节-MAC地址,目标地址:6字节-MAC地址,数据描述信息:6字节,共18字节)和数据部分

            MAC地址可以保证网卡的唯一性

          • 工作方式:以基于MAC地址的广播方式,来完成数据传输。→ 只能基于局域网
      5. 物理层:通过物理设备发送数据的电信号(01010101),接受电信号

    不管是什么层,数据的报头的长度应该是固定的,具体长度可以因层而异

IP+MAC就可以确定世界上独一无二的网卡
ARP(Address Resolution Protocol)协议:根据IP地址获取物理地址的一个TCP/IP协议。(通过广播方式获取,并会在缓存存留一段时间)

发数据包:加报头的过程 收数据抱:拆报头的过程

客户端和服务端:
+ 服务端必须持续提供服务
+ 服务端的IP和端口不能随便变,客户端的IP和端口不需要固定

猜你喜欢

转载自www.cnblogs.com/py-xiaoqiang/p/11298953.html