计算机网络

TCP/IP四层模型: 将OSI(open systems interconnection model)的七层模型合并为四层

  • 网络接口层 : 负责数据的物理传输
  • 互联网层 : 负责路由的选择,,使用的协议是IP (internet protocol)
  • 传输层: 端到端的通信,,使用的协议是TCP,或者UDP
  • 应用层: 负责处理具体的应用请求,,如HTTP,FTP,DNS等

传输层提供了一系列 socket api,,应用实在建立了有效的socket之后,在socket之上,收和发,,

tcp的socket建立:

  • 建立一个welcome socket
  • 调用bind()方法,将 welcome sokcet和本地的ip,端口绑定
  • 绑定ip和端口,是为了监听客户端是否需要建立连接,,等待客户端建立连接
  • 建立连接之后会产生一个 client socket用来数据交互

网络层提供的服务可能 丢失,乱序,延迟,出错,,传输层向上提供的服务可以是tcp可靠的服务,,tcp上面有ssl,可以加强他的安全性


tcp的传输:

  • tcp协议会将要传输的数据分段(segment),segment的头部会携带端口,,封装之后,交给下层网络层,网络层是主机到主机,,会在头部拼接上ip地址

UDP: user datagram protocol

  • 进程到进程,,尽力而为,报文可能丢失,可能乱序,两个进程之间不需要握手,,常用于 实时流媒体,,或者是 一次往返搞定的应用(因为建立连接麻烦)
  • udp不用握手,头部比较小(8个字节的头部),,,但是不可靠,,如果需要可靠的服务,,只能在应用层自己写

UDP传输数据校验:

  • 发送方:
    1. 将数据(数据+头部+为头部) 按照16位分组,,进行二进制加法,,并执行进位回滚,,
    2. 这个进位回滚的值,,取反码,,,
    3. 将这个反码作为 校验和,,填入udp报头的校验和字段,然后发送整个数据包
  • 接收方:
    1. 将收到的所有内容(包括伪头部,udp头部,数据,以及发送方填好的校验和字段),按照16位分组,,
    2. 将这些所有分组进行二进制加法,,(接收方会将所有字段加在一起,,并且加法的过程是按反码加法进行的,,所以只需要加起来判断是否是全1就行),,,接收方的加法操作是反码加法,这意味这他在加法过程中会遵循反码加法规则,也就是说结果超出了16位,他会把高位丢掉,,加到低位
    3. 如果全1,表示数据传输无误,,如果不全1,,说明数据在传输过程中出现错误

发送方和接收方使用的都是 反码加法 : 他们都会把高位丢掉,补到低位,,所以接收方直接求和,,如果是全1,,数据就是正确的


名词

  • welcome sokcet : 用于等待客户端的连接请求,负责监听和接收客户端连接

  • client socket : 与客户端建立连接之后的套接字,用于和客户端进行通讯,,与客户端进行数据交换

  • 复用: 复用是 "发送数据" 的过程,,他将来自不同应用的数据汇集起来,,通过同一个网络接口(网卡)发送出去

  • 解复用: 解复用是 "接收数据" 的过程,,他将来自网络的一条物理链路上传输的混合数据包,,正确的分发到对应的 socket上,,因为在tcp协议上,,操作系统使用源ip,源端口号,目标ip,目标端口这四个组成的四元组,,作为一个唯一的标识符,可以通过这个找到对应的进程,将数据发送给进程

  • 进位回滚:

  • 校验和: 一种简单的错误检测机制,,可以进行数据完整性检查,,但也可能出现巧合的错误

  • 反码加法 : 是一种特殊的加法方式,他的特点是进位回滚,将进位部分丢弃,并加回到低位

相关推荐
运维栈记几秒前
虚拟化网络的根基-网络命名空间
网络·docker·容器
五仁火烧28 分钟前
生产环境中配置了接口3000后,不能启动,改成8080后就可以
linux·网络·安全·vue
橙露39 分钟前
国产PLC与进口PLC全面对比分析:技术、市场与未来趋势
运维·网络
chilavert3181 小时前
技术演进中的开发沉思-302计算机原理:网络基础
网络·计算机原理
Hellc0071 小时前
Docker网络冲突排查与解决方案:完整指南
网络·docker·容器
眠りたいです2 小时前
Docker核心技术和实现原理第二部分:docker镜像与网络原理
运维·网络·docker·容器
闲人编程2 小时前
消息通知系统实现:构建高可用、可扩展的企业级通知服务
java·服务器·网络·python·消息队列·异步处理·分发器
Xの哲學2 小时前
Linux Platform驱动深度剖析: 从设计思想到实战解析
linux·服务器·网络·算法·边缘计算
ikkkkkkkl2 小时前
计算机网络:物理层
网络·计算机网络·物理层
镜中人★2 小时前
408计算机组成原理考纲知识点
网络·笔记