IP地址分类及ISO-OSI、三次握手


1. A类地址

  A类地址的表示范围为:0.0.0.0~126.255.255.255(00000000~01111110),最前面一位是“0”,用7位(bit)来标识网络号,24位标识主机号;默认网络掩码为:255.0.0.0,11111111.00000000.00000000.00000000 可以看到它的主机位是24位(用0表示)A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。全世界总共只有126个只可能的A类网络,每个网络可以容纳的主机就是2的24次方-2了 -2是因为主机中要用去一个网络号和一个广播号;A类地址分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。

  2. B类地址

B类地址的表示范围为:128.0.0.0~191.255.255.255(10000000~10111111),最前面一位是“10”,默认网络掩码为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。

  3. C类地址

  C类地址的表示范围为:192.0.0.0~223.255.255.255,最前面一位是“110”,默认网络掩码为:255.255.255.0;如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。

  实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。

转自:Tanks to : http://blog.csdn.net/panjunnn/article/details/5653388

OSI中的层

功能

TCP/IP协议族

应用层

文件传输,电子邮件,文件服务,虚拟终端

TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

表示层

数据格式化,代码转换,数据加密

没有协议

会话层

解除或建立与别的接点的联系

没有协议

传输层

提供端对端的接口

TCP,UDP

网络层

为数据包选择路由

IP,ICMP,RIP,OSPF,BGP,IGMP

数据链路层

传输有地址的帧以及错误检测功能

SLIP,CSLIP,PPP,ARP,RARP,MTU

物理层

以二进制数据形式在物理媒体上传输数据

ISO2110,IEEE802。IEEE802.2


三次握手

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

Sequence number(顺序号码) Acknowledge number(确认号码)

TCP/IP基础--TCP三次握手

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完成三次握手,主机A与主机B开始传送数据。

 


在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.

 

实例:

IP 192.168.1.116.3337 ----> 192.168.1.123.7788: S 3626544836:3626544836
IP 192.168.1.123.7788 ----> 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 -----> 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116发送位码syn=1,随机产生seq number=3626544836的数据包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立联机;

第二次握手:192.168.1.123收到请求后要确认联机信息,向192.168.1.116发送ack number=3626544837,syn=1,ack=1,随机产生seq=1739326486的包;

第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,192.168.1.116会再发送ack number=1739326487,ack=1,192.168.1.123收到后确认seq=seq+1,ack=1则连接建立成功。

 Thanks to :http://www.cnblogs.com/tiwlin/archive/2011/12/25/2301305.html


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

drools 决策表_骆驼和春天的Drools决策表

drools 决策表正如我在之前的文章中所展示的那样, JBoss Drools是一个非常有用的规则引擎 。 唯一的问题是,对于非技术人员而言,以Rule语言创建规则可能会非常复杂。 这就是为什么人们可以提供一种简便的方法来创建业务规则-在电子表格中创建…

Thinking in Java方法签名

方法名和参数(即,方法签名)唯一标识某个方法:如, public void add(int a,int b){ } //这两个方法的方法签名一样,是不能在同一.java里的,编译通不过 public int add(int a,intb){ return a b; …

在Java中处理异常

每个程序员都希望编写一个完美的程序。 也就是说,程序运行时没有任何障碍。 好吧,如果希望是马,乞g就会骑。 除了程序员的所有愿望之外,有时还会发生无法预料的情况。 这些不可预见的情况在Java中通常被归类为“例外”。 异常会…

通信系统的组成

数字通信模型: http://blog.csdn.net/yaosiming2011/article/details/44280797 进程和线程

存储卡显示0字节怎么办?恢复0字节的存储小技巧

存储卡显示0字节是一个常见的故障现象,可能由多种原因引起。本文将详细分析存储卡出现此类问题的各种原因,并提供针对性的解决方法。通过深入了解这些原因和解决方案,读者可以有效地应对存储卡显示0字节的故障,从而恢复存储卡的正…

OSI模型和TCP/IP协议族

1、协议分层 两个实体之间要进行通信就需要有一个协议。而当通信比较复杂时就有必要将这个复杂的任务划分为多层,就需要有多个协议,每一层都有自己的协议。 2、ISO 国际标准化组织(International Standard Organization , ISO&…

亚马逊s3的使用方法_使用jclouds库在Amazon S3上上传

亚马逊s3的使用方法在Java世界中&#xff0c;有几种很好的方法可以将内容上传到S3存储桶-在本文中&#xff0c;我们将研究jclouds库为此提供的功能。 要使用jclouds –特别是本文中讨论的API&#xff0c;应将此简单的Maven依赖项添加到项目的pom中&#xff1a; <dependency…

在PhotoShop中改像素m*n

快捷键&#xff1a;CtrlAlti&#xff0c;如图&#xff0c;改为28*28

Spring Boot Redis简介

1.概述 在本文中&#xff0c;我们将通过Spring Data Redis库回顾如何将Redis与Spring Boot结合使用的基础知识。 我们将构建一个应用程序&#xff0c;演示如何通过Web界面执行CRUD操作Redis 。 Github上提供了该项目的完整源代码。 2.什么是Redis&#xff1f; Redis是一个开源…

Dijkstra-解决最短路径问题

1、从A开始&#xff08;也可以从其他点&#xff0c;此处选择从A&#xff09; 将A 加入树&#xff0c;A被圈红 列出最短路径数组&#xff1a; 2、 确定从A到其他顶点的最短距离为50&#xff0c;A-->B 将B加入树&#xff1a; 更新最短路径数组&#xff1a; 比较到C的距离&a…

jackson使用_如何在Jackson中使用PropertyNamingStrategy

jackson使用Jackson api被广泛用于将json转换为Object并将Object转换为JSON。因此&#xff0c;如果您有json字符串并想在java对象中进行转换&#xff0c;请创建与json中的字段相同的bean的字段名。 Jackson在将json字段映射到java对象字段时遵循标准的bean约定&#xff0c;但是…

简单排序--冒泡排序

冒泡排序&#xff1a; public void sort(){int out,in;//out指向已经排好序的前一个for( outnElements-1;out>1;out--){for(in0;in<out;in){if(arr[in]>arr[in1]){swap(in,in1);//相邻的两个元素比较&#xff0c;交换}}}}//实现冒泡排序相邻的元素两两比较&#xff0c…

jca使用_使用JCA的密码学–提供者中的服务

jca使用Java密码体系结构&#xff08;JCA&#xff09;是一个可扩展的框架&#xff0c;使您能够使用执行加密操作。 JCA还促进实现独立性&#xff08;程序不应该在乎谁提供加密服务&#xff09;和实现互操作性&#xff08;程序不应该与特定加密服务的特定提供者联系在一起&#…

简单排序--选择排序

选择排序&#xff1a; public void sort(){int out,in,min;for(out0;out<nElements-1;out){min out;for(inout1;in<nElements;in)if(arr[in]<arr[min])min in;swap(out,min);//将min放在out位置&#xff0c;out始终指向最小值的下一个位置&#xff0c;即下一个min要…

Java 9模块服务

接线与查找 Java长期以来都有一个ServiceLoader类。 它是在1.6中引入的&#xff0c;但是自Java 1.2以来就使用了类似的技术。 一些软件组件使用了它&#xff0c;但是使用并不广泛。 它可以用于模块化应用程序&#xff08;甚至更多&#xff09;&#xff0c;并提供一种使用应用程…

简单排序--插入排序

插入排序&#xff1a; public void sort(){int in,out,temp;for(out1;out<nElements;out){temp arr[out];in out;while(in>0&&arr[in-1]>temp){arr[in] arr[in-1];//待插入的数据比其之前的数字大的右移&#xff0c;从小到大排序--in;//依次左移}arr[in] …

ejb 2.1 jboss_JBoss AS 8中的Java EE 7和EJB 3.2支持

ejb 2.1 jboss你们中有些人可能已经知道Java EE 7规范的Public Final Draft版本已经发布 。 除此以外&#xff0c;此版本的Java EE还引入了EJB规范的EJB 3.2版本。 与EJB 3.1规范相比&#xff0c;EJB 3.2具有一些新功能。 我在这里引用EJB 3.2规范中的文本&#xff0c;总结了新…

一些工厂实例

我时不时地发现自己摸索了一些旧的代码&#xff0c;以找到示例“我在哪里做过工厂一样的事情”。 上周再次发生这种情况时&#xff0c;我决定只查找所有示例&#xff0c;并创建一个示例项目和有关它的博客文章。 所以在这篇文章中&#xff0c;我&#xff1a; 从简单的“原始…