计算机网络

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,目标端口这四个组成的四元组,,作为一个唯一的标识符,可以通过这个找到对应的进程,将数据发送给进程

  • 进位回滚:

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

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

相关推荐
colus_SEU4 小时前
【计算机网络笔记】第二章 应用层 (Application Layer)
笔记·计算机网络·1024程序员节
LRX_1989274 小时前
网络管理员教程(初级)第六版--第1章计算机网络概述
网络·计算机网络
fei_sun4 小时前
【复习】计网每日一题1026---分片,UDP首部
网络·网络协议·udp
_dindong5 小时前
Linux网络编程:进程间关系和守护进程
linux·运维·服务器·网络·c++·学习
qq_310658516 小时前
webrtc代码走读(五)-QOS-FEC原理
网络·c++·webrtc
前端世界6 小时前
当网络里混入“假网关”:用 Scapy 写一个 DHCP 欺骗检测器(附完整代码与讲解)
开发语言·网络·php
NiKo_W6 小时前
Linux 网络初识
linux·网络·网络协议
报错小能手7 小时前
计算机网络自顶向下方法10——应用层 HTTP/2 成帧 响应报文优先次序和服务器推
笔记·计算机网络
延迟满足~8 小时前
Kuboard部署服务
网络