网络基础(3)
网络基础(3)
有关进程
1)进程是人在系统中的代表,只要把数据给进程,人就相当于拿到了数据
2)数据传输到主机不是目的,而是手段。到达主机内部,再交给主机内的进程才是目的
上网的行为只有两种:1)从远端服务器获取数据
2)本地数据,上传到远端服务器
**网络通信的本质:**两个不同主机的进程在进行数据交互,也就是进程间通信,让不同的进程看到同一份资源
这时候就会产生一个问题:
在系统中,同时会存在非常多的进程,当数据到达目标主机之后,怎么转发给目标进程?
在系统中,标识主机的唯一性
端口号
定义:(port)传输层协议的内容
1)端口号是一个2字节16位的整数
2)端口号可以用来标识系统中唯一的一个网络进程
端口号VS pid
1)不是所有的进程都要进行网络通信
2)从技术角度,pid是可行的,但是pid是一个系统的概念,pid变化,网络也要随之变化,这就是解耦
怎样标识对方的唯一性:socket=ip+port
TCP(可靠)VS UDP(不可靠)
TCP:做更多的工作,复杂,占用更多资源
UDP:很简单
网络协议必须采用大端字节序,即低地址高字节
凡是发送到网络中的数据,必须是大端
大小端都是以字节为单位的
先发出的数据是低地址,后发出的数据是高地址
将0x1234abcd写入到以0x0000开始的内存中,结果为
大端 | 小端 | |
---|---|---|
0x0000 | 0x12 | 0xcd |
0x0001 | 0x34 | 0xab |
0x0002 | 0xab | 0x34 |
0x0003 | 0xcd | 0x12 |
网络通信的本质:进程间通信
system V:本地进程间通信
posix标准:网络通信,进程通信