Socket套接字学习总结

主题:
简介:
参考:
C语言编程网之socket编程
图解TCP/IP

作者:
时间:
1.套接字的定义
定义:socket是计算机之间进行通信(网络编程)的一种约定或者一种方式,通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。
应用:web服务器和浏览器的请求和响应

注:read、write、文件描述符、句柄

2.Internet套接字
(1)SOCK_STREAM
SOCK_STREAM流格式套接字也称面向连接的套接字,在代码中使用SOCK_STREAM表示。
SOCK_STREAM是一种可靠的(TCP)、双向的通信数据流,数据可以准确无误地到达另一台计算机,如果损坏或者丢失,可以重新发送,因此是可靠的(内部有纠错机制)。

SOCK_STREAM的特征:
数据在传输过程中不会消失;
数据是有顺序的;
数据收发不同步,接收方比较灵活;

注:流格式套接字内部有一个缓冲区,通过socket传输的数据将保存到这个缓冲区,接收端的灵活性取决于缓冲区的能力

应用:
HTTP

(2)SOCK_DGRAM
SOCK_DGRAM也叫无连接的套接字,在代码中使用SOCK_DGRAM表示。
SOCK_DGRAM模式下计算机只管传输数据,不作数据校验,如果数据在传输过程中损坏,或者没有到达另一个计算机,没有办法补救,数据错了就是错了,无法重传。

特点:
效率较高

特征:
传输快;
收发是同步的;
每次传输的数据大小受限;
传输的数据可能丢失也可能损毁;

注:SOCK_DGRAM不可靠的(UDP)、不一定按顺序的、具有高传输效率的套接字。

3.SOKC_STREAM和SOCK_DGRAM
路由器:IP寻址、路由算法,数据包的传输路径是根据路由算法(RIP、OSPF)计算出来的。

面向连接的套接字(TCP的特点):
虚电路、路由器的下一跳。
连接的建立和释放会消耗时间;

面向无连接(UDP的特点):
尽力而为;
数据分包;

TCP和UDP总结:
TCP:面向连接、可靠、开销大
应用:FTP、HTTP
UDP:面向无连接、不可靠、传输效率高
应用:DNS、微信

4.OSI七层模型和TCP/IP四层
我们所说的socket编程,是站在传输层的基础上,使用TCP/UDP(传输层协议),但是不能访问网页,因为访问网页所需的HTTP协议位于应用层。

5.TCP/IP协议族

6.IP地址、MAC地址、端口号
IP地址的分类:
四类
1.0.0.0-127.255.255.255
128.0.0.0-191.255.255.255
192.0.0.0-223.255.255.255
224.0.0.0-239.255.255.255

私有IP地址
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255

IP地址:局域网地址
MAC地址:物理地址
端口号:确定处理的网络程序

上一篇:带图片的word快速插入到博客中


下一篇:【Socket网络通信 | TCP协议分析】