socket网络编程(上)
一、基本概念
OSI模型与TCP/IP模型:
OSI(开放系统互联参考模型)为计算机网络设计的一个通信模型,由于太过复杂而没有完全实现,仅仅是一套设计方案。
共分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP模型是OSI的具体实现,只实现出一部分,还没有完全实现,还有一些漏洞不太安全,是我们目前使用通信模型。
TCP/IP也叫协议簇,由一堆网络通信协议组成,其中TCP、IP是最重要的两个协议,因此简称TCP/IP。
共分为四层:
物理层:负责通过网络收发数据包
网络层:选择、流量控制,网络拥塞问题,IP协议是该层的核心协议
传输层:在机器之间建立用于会话的连接,UDP/TCP是该层的核心协议
应用层:主要为用户提供针对性的服务,该层的代表协议有:HTTP、SMTP、FTP、TELNET、POP、SNMP
对应关系:
OSI TCP/IP
会话层、表示层、应用层 应用层
传输层 传输层
网络层 网络层
物理层、数据链路层 物理层
UDP:面向无连接的通信,也叫用户数据报通信,就是发短信。
速度快、但不够安全,有数据丢失的可能性。
目标地址+数据包 直接发送,对方是否收到、数据有没有丢失,发送都是不知道的。
TCP:面向连接的通信,就是像是打开电话。
与UDP相比速度有些慢,但数据绝对不会丢失。
连接时的三次握手,数据包校验、重传、断开时的四次挥手来确保数据不会丢失。
IP地址:
在计算机网络有每计算机都必须有一个唯一的标识符(身份证号)IP地址,是IP协议在工作是需要的一个标识,在同一个作用域下是唯一的。
由4个0~255的整数组成,一般采用点分10进制表示,在计算机中用32位二进制存储。
公有IP和私有IP:
公有IP:在网络服务提供商登记过的IP地址叫公有IP,可以在互联网被访问到。
私有IP:公司、家庭的局域网中自己分配的IP地址,不能网络中被访问。
注意:私有IP主动访问公有IP,公有IP可以按原路返回数据,私有IP想与私有IP进行通信需要借助一个公有IP(服务器)