Notes
Search…
Notes
Introduce
Go
Grammar
System Library
Concurrency in Go
The Go Memory Model
Rust
The Rust Programming Language
Rust by Example
JAVA
Preface
Grammar
Class Libraries
Concurrency
JVM
Web Container
Spring
Tuning
Computer Science
Computer Organization
Algorithm
Network Protocol
Pysical Layer
Data Link Layer
Network Layer
Transport Layer
Application layer
HTTP
HTTP/2 in Action
Operating System
Design Patterns
Microservice
Distributed System
database
InfluxDB
MySQL
Redis
Elasticsearch
HBase
Kafka
ZooKeeper
MongoDB
Reading
RocketMQ
演说之禅
Other
v2ray
Kubernetes
Git
Maven
Anaconda And Conda
Fuck! Shit!
Open source contribution
Powered By
GitBook
Network Protocol
《计算机组成与系统结构》、
《数据结构与算法》
、《操作系统》、《计算机网络》、《编译原理》是大学计算机的核心课程。
新技术层出不穷,网络协议是你到了 45 岁之后任然有价值的知识。
协议的三要素:
语法:一段内容要符合一定的规则和格式。如括号要成对。
语义:一段内容要代表某种意义。如数字减去数字是有意义的。
顺序。
只有通过网络协议,才能使一大片机器互相协作,共同完成一件事。
起初,TCP/IP 的设计者提出分层,它分为四层。TCP/IP 发明于 1970年代,当时还有很多网络协议,整个网络世界比较混乱。这时候国际标准组织(ISO)想来个大统一,于是设计了 OSI,开放式系统互联通信参考模型(Open System Interconnection Reference Model)。OSI 分为 7 层,设计参考了 TCP/IP 的分层,所以四层和七层有不是很精确的对应关系:
OSI 在四层以上分的太细,TCP/IP 在实际应用时会话管理、编码转换、压缩等和具体应用紧密联系,很难分开,所以 5、6层就不见了。
层级
协议
应用层
DHCP,
HTTP
,
HTTPS
, RTMP, P2P,
DNS
, GTP, RPC
传输层
UDP
,
TCP
网络层
ICMP
,
IP
,
OSPF
,
BGP
, IPSec, GRE
链路层
ARP
,
VLAN
,
STP
物理层
网络跳线
,
集线器
只要是在网络上跑的包,都是完整的。可以有下层没有上层,绝对不可能有上层没有下层。比如对于 TCP 协议,无论是三次握手、重试,只要想发出去包,就一定有 IP 和 MAC 层。
对于 UDP、TCP 在操作系统的实现,采用
Socket 编程
。
Previous
Dynamic Programming
Next
Pysical Layer
Last modified
2yr ago
Copy link