一、网络概述
计算机网络是指通过传输介质、通信设备和网络通信协议、将分散在不同地点的计算机互联起来,实现资源功能共享和数据传输的系统。
传输介质:光纤、线缆… 通信设备:路由器、猫、交换机… 网络通信协议:http、tcp、ip…
网络编程:指编写程序是互联网中两个或者多个设备直接进行数据传输
1.1 OSI模型
OSI(Open System Interconnection)网络通信进行分层:七层 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
OSI参考模型 | 各层解释 |
---|
物理层 | 处于OSI的最底层,主要传输原始比特流(bits)。交换机、光纤等,主要为数据段的设备提供传送数据的通道以及传输数据。 | 数据链路层 | 数据链路层是实现计算机网络相邻节点之间的可靠传输。把原始的,有差错的传输线路上添加数据链路层协议之后,构成逻辑上可靠的数据链路。主要功能:链路管理、差错控制以及流量控制 | 网络层 | 网络层源主机节点到目的主机节点之间的可靠传输(IP)主要功能:路由选择、网络寻址、流量控制、拥塞控制、网络互连 | 传输层 | 传输层起着承上启下的作用,是源端点到目的端点之间的可靠信息传输(端口port)(解析出对应电脑的那个应用),传输层解决的是跨越网络连接的建立和释放(TCP三次握手和释放时四次挥手) | 会话层 | 负责程序之间的建立、维护和中断会话对设备和节点之间的会话控制、协调系统和服务之间的交流 | 表示层 | 提供传输数据的格式信息定义,主要是将提供的信息转化为能够共同理解的信息。提供数据格式,控制信息格式、加密等的统一处理。(包装关键信息:发送者、接受方、发送时间、消息类型:文字、表情、语音、视频、文件) | 应用层 | 直接为应用程序提供服务。 |
1.2 TCP/IP协议族
传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol) 将网络通信划分了4层:网络接口层、网络层、传输层、应用层
TCP/IP协议族 | 各层解释 |
---|
网络接口层 | 网络接口层对应OSI中物理层和数据链路层 | 网络互联层(IP层) | 把上层提交的信息分组发送到目标网络或注解(IP) | 传输层(TCP层) | TCP负责在应用之间建立端到端的连接和可靠通信,UDP提供了无连接的服务、不可靠的通信 | 应用层 | 为网络中的各种网络应用提供服务应用层对应是OSI中会话层。表示层和应用层 |
1.3 各层协议介绍
应用层; 协议:ftp、SMTP、HTTP
FTP(File Transfer Protocol) 文件传输协议<端口号21> 减少或消除不同操作系统下文件处理的不兼容性
HTTP(Hypertext Transfer Protocol)超文本传输协议<端口号 80>,主要是web浏览器和服务端交互使用的协议
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议 <端口25> 用来发送邮件的
传输层: 协议:TCP、UDP TCP(Transmission Control Protocol)传输控制协议提供可靠的面向连接的服务 数据传输之前必须先建立连接,结束后释放,可靠的全双工信道。可靠、有序、无丢失、不重复
UDP(User Datagram Protocol)用户数据包协议发送数据前无需建立建立,不使用拥塞控制,不保证可靠传输,最大能力交付
网络层: IP(Internet Protocol)网络互连协议(Ipv4/IPv6)
链路层: 协议:ARP和RARP ARP:地址解析协议,实现IP地址转换为Mac物理地址信息(网卡)(收消息) RARP反向地址解析协议:实现网卡地址信息转化为IP信息(发消息)
1.4 数据包
包、帧、数据包、段、消息 以上五个术语都用来表述数据的单位,区分如下: 包可以说是全能性术语; 帧用于表示数据链路层中包的单位; 数据包是 IP 和 UDP 等网络层以上的分层中包的单位; 段则表示 TCP 数据流中的信息; 消息是指应用协议中数据的单位。
每个分层中,都会对所发送的数据附加一个首部,首部包含该层的必要信息,发送:目标地址、端口、即相关协议 网络中传输的数据包由两部分组成,一部分是协议所在的首部,另一部分是上一层传递过来的数据,首部非结构由协议的具体规范详细定义的,在数据包的首部,明确的标明协议应该如何读取,反过来,看到首部,也就可以了解协议的必要信息以及下来处理的流程。
1.5 数据处理流程
加入a用户项b用户发送一个邮件为例:
消息在发送时就是从协议从上往下进行数据包传递,在每一层封装包首部信息 在接受协议是从下往上进行传递,在每一层解析对于的包首部
1.6 TCP/IP协议
1.6.1 TCP协议
TCP (Transmission Control Protocol ,传输控制协议)是面向连接的传输层协议。TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
TCP协议采用字节流传输数据。
1.6.2 TCP协议特点
-
面向连接:通信之前必须建立连接 -
每一条TCP连接只能是点对点的(一对一); -
提供可靠交付的服务:通过TCP连接传输的数据,无差错,不丢失,不重复。 -
提供全双工通信; -
面向字节流。虽然程序和TCP交互是一次一个数据块,但是把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。 -
TCP首部占20字节。
|