如何一键建淘宝客网站,建导航网站,做汽车网站销售怎么入手,大气网站建设协议 协议就是约定
网络协议是协议中的一种 协议分层
协议本身也是软件#xff0c;在设计上为了更好的模块化#xff0c;解耦合#xff0c;也是设计成为层状结构的 两个视角#xff1a;
小白#xff1a;同层协议#xff0c;直接通信
工程师#xff1a;同层协议…协议 协议就是约定
网络协议是协议中的一种 协议分层
协议本身也是软件在设计上为了更好的模块化解耦合也是设计成为层状结构的 两个视角
小白同层协议直接通信
工程师同层协议没有直接通信是各自使用下层提供的结构能力完成的通信
分层可以实现解耦合降低复杂度 TCP/IP协议族
为什么要有TCP/IP协议族用来解决网络遇到的问题
距离长引入了很多问题
精准发送到指定目标传输困难丢失的风险 冯诺依曼计算机也是网络只不过距离比较近 OS可以不同但协议栈必须按照相同标准实现所以不同主机才可以相互通信
TCP传输层
IP网络层
TCP/IP必须实现在内核中
TCP/IP是最重要的协议所以以此命名协议族 操作系统都是C语言写的
TCP/IP是操作系统一部分也是C写的TCP/IP部分C代码在所有OS都相同 协议本质就是相同的结构体不同OS/主机使用相同结构体相同代码这就是协议本质 协议的朴素认识所谓协议就是通信双方都认识的结构化的数据类型因为代码相同 每台主机在局域网上要有唯一的标识确保主机的唯一性mac地址 以太网是局域网中的一种 为了防止数据碰撞冲突以太网中只允许同时存在一个数据。以太网相当于临界资源 报文报头有效载荷 mac ip
ip是一直不变的mac是一直变化的
图片
看目的ip进行路由
局域网通信需要mac地址 一般而言mac地址只在局域网中有效 端口号port
端口号是传输层协议内容
端口号是二字节16位整数
端口号标识一个进程
0-1023 知名端口号
1024-65535操作系统动态分派端口号 ip端口号唯一确定一个进程
网络通信本质进程间通信 socketip地址
socket插座 为什么不用pid/tid非要新建一个端口号概念
网络和进程等解耦合防止互相干扰 传输层中TCP/UDP协议
Transmission Control Protocol
传输控制协议
User Datagram Protocol
用户数据报协议
[细节不同]
TCP/DUP没有好坏各有使用条件 字节流类似水流随便读取
数据报类似快递只能按照规定限制读取 网络规定所有发送到网络的都是大端 sockaddr struct sockaddr
sockaddr_in
sockaddr_un
继承与多态 用sockaddr接收in/un
为什么不用void*
当时还没有void*sockaddr比void*语义清楚 板书笔记