TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。五层模型:从下到上:物理层、数据链路层、网络层、传输层、应用层。
开放式系统互连(OSI)七层:从下到上:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP的三次握手
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK
(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
TCP/IP建立一个连接需要三次握手,而终止一个连接需要四次握手。
IP地址:所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照tcp/ip规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。
将IP地址分成了网络地址和主机地址两部分。网络号的位数直接决定了可以分配的网络数(计算方法:2^网络号位数-2);主机号的位数则决定了网络中最大的主机数(计算方法:2^主机号位数-2)。
IP地址分为A、B、C、D、E5类。常用的是B和C两类。
A类IP地址
一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。 A类IP地址 地址范围1.0.0.1-126.255.255.255(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111111)。 A类IP地址的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777214台。 B类IP地址 一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。 B类IP地址地址范围128.0.0.1-191.255.255.255(二进制表示为:10000000 00000001 00000000 00000001----10111111 11111111 11111111 11111111)。 B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台 C类IP地址 一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。 C类IP地址范围192.0.0.1-223.255.255.255(二进制表示为: 11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111111)。 C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台 公有地址(Public address)由Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
RFC 1918留出了3块IP地址空间(1个A类地址段,16个B类地址段,256个C类地址段)作为私有的内部使用的地址。在这个范围内的IP地址不能被路由到Internet骨干网上;Internet路由器将丢弃该私有地址。
以下列出留用的内部私有地址:
A类 10.0.0.0--10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255
使用私有地址将网络连至Internet,需要将私有地址转换为公有地址。这个转换过程称为网络地址转换(Network Address Translation,NAT),通常使用路由器来执行NAT转换。
计算子网掩码数