TCP/IP

来源:互联网 发布:java开源的工作流引擎 编辑:程序博客网 时间:2024/05/19 04:02

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转换。


计算子网掩码数

1、利用子网数来计算

  在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
  1)将子网数目转化为二进制来表示
  2)取得该二进制的位数,为 N
  3)取得该IP地址的类子网掩码,将其主机地址部分的的前N位置1 即得出该IP地址划分子网的子网掩码。
  如欲将B类IP地址168.195.0.0划分成27个子网:
  1)27=11011
  2)该二进制为五位数,N = 5
  3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1,得到 255.255.248.0
  即为划分成27个子网的B类IP地址 168.195.0.0的子网掩码。

2、利用主机数来计算

  1)将主机数目转化为二进制来表示
  2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。
  3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
  如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
  1) 700=1010111100
  2)该二进制为十位数,N = 10
  3)将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255
  然后再从后向前将后10位置0,即为: 11111111.11111111.11111100.00000000
  即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址168.195.0.0的子网掩码。

原创粉丝点击