No.28TCP&UDP

Posted elliottwave

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了No.28TCP&UDP相关的知识,希望对你有一定的参考价值。

No.28

今日概要

网络概念

  • TCP协议
    • 协议的特点
    • 三次握手
    • 四次挥手
  • UDP协议
    • 协议的特点
  • OSI七层模型
    • 每一层的物理设备
    • 每一层的常见协议

Socket

  • 介绍Socket
  • 使用Socket完成tcp协议的web通讯
  • 使用Socket完成udp协议的web通讯

内容回顾

网络概念

  • 网络架构
    • C/S client - server
      • 客户端
    • B/S browser -server
      • web服务
    • B/S 是特殊的 C/S
  • 物理设备
    • 网卡
      • mac地址:全球唯一物理地址
    • 交换机
      • 完成局域网内的多台机器之间的通讯
      • 只能识别mac地址
      • 通讯方式:单播、组播、广播
      • arp协议(地址解析协议)
        • 通过一台机器的IP地址获取它的mac地址
        • 由交换机完成:广播 单播
    • 路由器
      • 完成局域网与局域网之间的联系
      • 能识别IP地址
      • 网段
      • 网关IP
        • 访问局域网外部服务的一个出口IP
  • IP地址/端口
    • 通过IP地址在网络上定位一台机器
      • ipv4
      • ipv6
    • 通过port能够在网络上定位一台机器上的一个服务
      • 端口范围:0 ~ 65535

内容详细

1.TCP协议

技术图片

  • 特点:
    • 需建立连接:可靠
      • 全双工通信
      • 长连接:会一直占用双方的端口
    • 速度慢
    • 能够传递的数据长度几乎没有限制
  • 建立连接的时候:三次握手
  • 断开连接的时候:四次挥手
  • 在建立起连接后:
    • 发送的每一条信息都有回执
    • 为了保证数据的完整性,还有重传机制
  • IO(input,output)操作,输入和输出是相对内存来说的。
    • write(send)→ output
    • read(recv)→ input

2.UDP协议

  • 特点:
    • 无需建立连接 :不可靠
      • 没有回执,可能会丢消息
    • 速度快
    • 能够传递的数据长度有限制,是根据数据传递设备的设置有关系。

3.应用场景

  • TCP:
    • 文件上传/下载相关(发送邮件、网盘、缓存电影)
    • 长数据
    • 下载看视频
  • UDP:
    • 即时通信类(qq、微信、飞秋)
    • 短数据
    • 在线看视频

4.OSI七层模型

  • 应用层
  • 表示层
  • 会话层
  • 传输层
  • 网络层
  • 数剧链路层
  • 物理层

简化版▲

osi五层协议(虚构) 物理设备

  • 应用层
    • http、https、ftp、smtp、python代码
  • 传输层 四层路由器,四层交换机
    • TCP、UDP、端口
  • 网络层 路由器(三层路由器)三层交换机
    • IP地址:ipv4、ipv6
  • 数剧链路层 网卡、交换机(二层交换机)
    • mac地址:arp协议
  • 物理层
    • 进制转换

5.Socket

Socket是工作在应用层和传输层之间的抽象层,帮助我们完成了所有信息的组织和拼接。对于程序员而言,Socket已经是网络操作的底层了。

技术图片

Socket历史

  • 同一台机器上的两个服务(程序)之间的通信
    • 基于文件
  • 基于网络的多台机器之间的多个服务通信

Python中借用Socket模块完成Socket的功能

  • 参数相关

技术图片

  • 三次握手

技术图片

  • 使用Socket完成tcp协议的web通讯

技术图片

  • 使用Socket完成udp协议的web通讯

技术图片

以上是关于No.28TCP&UDP的主要内容,如果未能解决你的问题,请参考以下文章

网络:传输层协议:TCP&&UDP

网络:传输层协议:TCP&&UDP

网络:传输层协议:TCP&&UDP

TCP && UDP

Unity网络通信(TCP&UDP)

Golang✔️走进 Go 语言✔️ 第二十三课 UDP & TCP