网络编程

网络编程其实研究的就是程序之间的数据通信

OSI七层协议

 

 

所有的计算机都必须要有这七层

应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层

开发层面可以归纳为五层

应用层
传输层
网络层
数据链路层
物理连接层

1.物理连接层

提供一个物理连接接口(网线口 无线网卡)

2.数据链路层

 1.规定了电信号的分组方式

 2.以太网协议

   规定了计算机必须有一块网卡 并且网卡上面要有一个固定的一串数字
    12位16进制数
    前六位:产商编号
    后六位:流水线号
   上述的数字也称之为计算机的mac地址(类似于身份证号)

3.网络层

  IP协议:规定了接入互联网的计算机都必须有一个IP地址用于唯一标识

  IPV4版本
    最小 0.0.0.0
    最大 255.255.255.255
  IPV6版本
    能够表示出地球上每一粒沙子

 IP地址能够唯一标识接入互联网的一台独一无二的计算机
 arp协议
   将IP地址转换成mac地址(基于网络请求)

4.传输层

  端口协议
  范围:0~65535
  特性:动态分配

  端口号基本使用

    0~1024系统默认需要使用的端口号
    1024~8000常见软件端口号
  以后我们开发的软件最后使用8000之后的端口号

  # 端口号(port):能够唯一标识一台计算机上面正在运行的一款应用程序

  端口号在同一台计算机同一时刻不能重复

4.1.TCP协议

  流式协议 可靠协议

  三次握手 建立链接
  重要状态
    listen监听态:等待对方发请求
    syn_rcvd态:忙于恢复确认建立请求
  # 洪水攻击:服务端在同一时间接收到了大量的要求建立链接的请求

  四次挥手 断开链接
  不能合并成三次

  tcp三次握手和四次挥手:

  

 

4.2.UDP协议 

  不可靠协议

  数据发送没有通道的概念 发送出去了就不管了

5.应用层

  应用层由来:

    用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式

  应用层功能:

    规定应用程序的数据格式

posted @ 2022-01-11 20:22  skuukzky  阅读(77)  评论(0)    收藏  举报