linux网络编程原理

 

视频来源:http://v.qq.com/detail/s/sdp001yg24cqadd.html

1、OSI七层模型 & TCP/IP 四层模型

linux网络编程原理_第1张图片

 

分层模型结构:

             OSI七层模型:物、数、网、传、会、表、应

             TCP/IP 4层模型:网、网、传、应

 

linux网络编程原理_第2张图片

以太网帧协议

               ARP协议:根据IP地址获取mac地址。

              以太网帧协议:根据mac地址,完成数据包传输

linux网络编程原理_第3张图片IP地址:在网络上唯一标识一台主机

端口号:在主机中唯一标识一个进程

IP地址+端口号:在网络上唯一标识一个进程

16位源端口号,16位目的端口号 :2^16=65536   其中8080端口号为特殊的端口号,其他大部分端口号在5000以下

IP协议:IPv6、IPv4

              TTL (time to live)跳转多少次后被回收;

             32位的 192.168.0.1

套接字:一个文件描述符指向一个套接字(该套接字由内核借助两个缓冲区实现,一个发送端,一个接收端)

            在通讯的过程中,套接字一定是成对出现的。

linux网络编程原理_第4张图片

linux网络编程原理_第5张图片

主机数据与网络数据的大小端转化

小端法:PC本地存储

大端法:网络存储

linux网络编程原理_第6张图片

linux网络编程原理_第7张图片

linux网络编程原理_第8张图片

linux网络编程原理_第9张图片

linux网络编程原理_第10张图片

 

linux网络编程原理_第11张图片

linux网络编程原理_第12张图片

1、由socket()产生一个套接字【1】

2、bind()绑定IP和PORT(端口号)

3、listen()设置同时监听的上限  例如:listen(fd,20) 可以同时监听20个套接字 【在此处的作用不是作为监听】

4、accept()阻塞监听客户端连接  ——》 有客户端连接后,将会产生一个新的套接字【2】与客户端的套接字连接,套接字【2】的信息是从套接字【1】继承过来的,然后套接字【1】会继续返回等待、监听。

linux网络编程原理_第13张图片

linux网络编程原理_第14张图片

linux网络编程原理_第15张图片

linux网络编程原理_第16张图片

linux网络编程原理_第17张图片

linux网络编程原理_第18张图片

nc的作用

(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口

(2)端口的扫描,nc可以作为client发起TCP或UDP连接

(3)机器之间传输文件

(4)机器之间网络测速 

nc 127.0.0.1 8888        //作为客户端连接服务器,IP地址为127.0.0.1 端口号为 8888

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux应用编程)