tcp/ip学习笔记

来源:互联网 发布:软件产品设计文档模板 编辑:程序博客网 时间:2024/05/20 09:27



 // ------------------------------------------------------------------------1-----------------------------------------------------------------


1.协议族?
一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合
2.TCP/IP有哪几层?
TCP/IP通常被认为是一个四层协议系统,
1>链路层(也称数据链路层或网络接口层),通常包括系统的设备驱动程序和计算机中对应的网卡(NIC),它们一起处理与电缆(或其他任何传输媒介)的物理接口细节
2>网络层(也称互联网层),处理分组在网络中的活动,例如分组的选路
3>运输层主要为两台主机上的应用程序提供端到端的通信。
4>应用层负责处理特定的应用程序细节


3.TCP/IP的网络层协议包括哪些?
IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)


4.TCP/IP的传输协议包括哪些?
TCP(传输控制协议)和UDP(用户数据报协议)


5. TCP/IP通用的应用程序包括哪些?
Telnet远程登陆
FTP文件传输协议
SMTP简单邮件传送协议
SNMP简单网络管理协议


6.分组(packet)?
分组既可以是一个IP数据报,也可以是IP数据报的一个片(fragment)


7.网络层和运输层的区别?
在TCP/IP协议族中,网络层IP提供的是一种不可靠的服务,也就是说,它只是尽可能快的把分组从源结点送到目的结点,但不提供任何可靠性保证。
而运输层TCP在不可靠的IP层上提供了一个可靠的运输层,为了提供这种可靠的服务,TCP采用超时重传,发送端和接收端到端的确认分组等机制.


8.协议简介?
TCP和UDP都使用IP做为网络层协议,虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务,TCP的应用包括Telnet和Rlogin,FTP,SMTP,UDP为应用程序发送和接收数据报,一个数据报是指从发送方传送到接收方的一个信息单元,UDP是不可靠的,它不能保证数据报能安全无误的到达最终目的,SNMP也使用UDP协议,IP是网络层的主要协议,同时被TCP和UDP使用,ICMP是IP协议的附属协议,IP层用它来与其它主机或路由器交换错误报文和其他重要信息,IGMP是Internet组管理协议,它用来把一个UDP数据报多播到多个主机,ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口使用的特殊协议,用来转换IP层和网络接口层使用的地址


9.五类IP地址?
找出记忆规律吧,把它想象成一个数组a[5],分别对应于ABCDE,那么,首先,起始位为1的个数和a[i]中的i相同,
那么任一个IP地址可以表示成a[i] = [i个1]+[1个0]+[7*(i+1)的倍数为网络号][余下的为主机号]
那么A就是[0][7位网络号][24位主机号]
       B就是[1][0][14位网络号][16位主机号]
       C就是[11][0][21位网络号][8位主机号]
       D就是[111][0][28位网络号][没了,到32位了]
      E就是[1111][0][只能为27位网络号了,到32位了]
嘿嘿!好吧,继续规则:
各类地址的起止范围:就是它们的最前面8位变化范围了,
那么A前8位是[0][7位网络地址]也就是0000000-01111111,也就是0-127
       B前8位是[1][0][14位网络地址中取6位凑足8位]也就是10000000-10111111也就是128-191
       C前8位是[11][0][21位网络地址中取5位凑足8位]也就是11000000-11011111也就是192-223
      ... D为224-239
      ... E为240-247


后面的三个四位范围肯定是0.0.0到255.255.255,


多接口主机号具有多个IP地址,其中每个接口对应一个IP地址(唯一的),InterNIC(互联网网络信息中心)负责分配网络号,主机号的分配由系统管理员来负责分配,Internet注册服务(IP地址和DNS域名)过去由NIC来负责,现在,NIC只负责处理国防数据网的注册请求,所有其他的Internet用户注册请求均由InterNIC负责处理,其网址是rs.internic.net
有三类IP地址:单播地址(目的为单个主机)、广播地址(目的为给定网络的所有主机)以及多播地址(目的为同一组内的所有主机)


10.DNS?
尽管通过IP地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还是主机名,在TCP/IP,域名系统(DNS)(Domain Name Server域名服务器)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息,必须理解的是,任何应用程序都可以调用一个标准的库函数来查看给定名字的主机的IP地址,类似地,系统还提供一个逆函数,给定主机的IP地址,查看它所对应的主机名,所以,大多使用主机名做为参数的应用程序也可以把IP地址做为参数.


11.TCP的数据封装?
我可以理解成每一层对应一个协议,所以数据在通过每一层都要增加一些首部信息(有时为尾部),最后当成一串byte流送入网络,TCP传给IP的数据单元叫TCP报文段或TCP段,IP传给网络接口层的数据单元称作IP数据报,通过以太网传输的比特流称为帧(Frame)


12.解包?
解包和TCP的数据封装刚好相反过程,最后通过目的端口号、源IP地址和源端口号进行解包


13.服务器类型?
分为两类:重复型或并发型
重复型:1.等待客户请求2.处理客户请求3.发送响应4.返回1,在处理客户请求时,它不能为其他客户机提供服务
并发型:1.等待客户请求的到来2.启动一个新的服务器来处理这个请求,可能为新进程,任务或线程,处理完后,终止新服务器3.返回1
一般来说,TCP服务器是并发的,而UDP服务器是重复的,但也存在例外.


14.服务器和客户端端口号?
TCP和UDP都采用16bit的端口号来识别应用程序
服务器一般都是通过知名端口号来识别人的,FTP的TCP端口号都是21,Telnet为23,每个TFTP(一般的文件传输协议)的UDP端口号都是69,任何TCP/IP实现所提供的服务都用知名的1-1023之间的端口号。这些知名端口号由Internet号分配机构IANA来管理
客户端的端口号也称临时端口号,只需保证端口号在本机上是唯一的就行,一般分配1024-5000之间,
大于5000是为其他服务器预留的。


15.RFC?
所有关于Internet的正式标准都以RFC(Request for Comment)文档出版,


16.internet和Internet?
internet意思是用一个共同的协议族把多个网络连接在一起,而Internet指的是世界范围内通过TCP/IP互相通信的所有主机的集合(超过100W台),
Internet从属于internet


17.应用程序编程接口?
使用TCP/IP协议的应用程序通常采用两种应用编程接口(API):socket和TLI(运输层接口:Transport Layer Interface)


18.全0或全1的网络ID是非法的!




习题:
1.1:请计算最多有多少个A类、B类和C类网络号。
按自己总结的算法规则,同时加入新知识A的网络号为7,所以为2的7次方-2= 126
B的网络号为14位所以为2的14次-2,同样C为2的21次-2


1.5 如果你有一个接入T C P / I P互联网的主机帐号,它的主I P地址是多少?这台主机是否接入
了I n t e r n e t?它是多接口主机吗?
这题不会!,下次加入答案!


 


 // ------------------------------------------------------------------------2-----------------------------------------------------------------


1.TCP/IP中链路层的主要目的?
1>为IP模块发送和接收IP数据报
2>为ARP模块发送ARP请接和接收ARP应答
3>为RARP发送RARP请求和接收RARP应答


2.以太网是一个标准,是当今TCP/IP采用的主要的局域网技术,采用一种称成CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入,速率10M,地址为48bit, CRC字段用于帧内后续字节差错的循环冗余检验,


3.SLIP?
SLIP:串行线数IP,是一种在串行线路上对IP数据报进行封装的简单形式,适用于RS-232串行端口和高速调制解调器接入Internet
帧格式:END(0xc0)结束,开始也传一个END字符用于防止线路噪声,用0xdb和我0xdc来代替END字符传输,
0xdb特殊字符被称为SLIP的ESC字符,用0xdb和0xdd来代替它传输
SLIP的缺陷:1,无检和(CRC字段)2.必须知道对方的IP地址,没法通知3.没有类型字段,所以一条串行线路用于SLIP,那么它不能同时使用其他协议.
这个在model拔号后打开属性,看到拔号服务器有两种选择 SLIP用于unix连接,PPP用于window连接---不小心发现的!


4.PPP?
PPP,点对点协议修改了SLIP协议中的所有缺陷。PPP包括以下三个部分:1>在串行链路上封装I P数据报的方法2>建立、配置及测试数据链路的链路控制协议3>针对不同网络层协议的网络控制协议体系


PPP比SLIP具有下面这些优点: (1) PPP支持在单根串行线路上运行多种协议,不只是IP协议;(2) 每一帧都有循环冗余检验; (3) 通信双方可以进行I P地址的动态协商(使用IP网络控制协议); (4) 与CSLIP类似,对TCP和IP报文首部进行压缩; (5) 链路控制协议可以对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加3个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。




5.环回接口?
大多数的产品都支持环回接口,以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信,A类网络号127就是为环回接口预留的,大多数系统把IP地址127.0.0.1分配给这个接口,并命令为localhost,一个传给环回接口的IP数据报不能在任何网络上出现.
关键:1.传给环回地址的任何数据都可作为IP输入2.传给广播或多播地址的数据报复制一份传给环回接口,因为广播传送和多播的定义包含了主机本身.
3.任何传给该主机IP地址的数据均送到环回接口。


6.MTU?
链路层有个最大帧传送单元,叫MTU,当多个网络通信时,每个网络的链路层都有个MTU值,最小的MTU叫路径MTU


习题:
2.1 如果你的系统支持netstat( 1 )命令(参见3 . 9节),那么请用它确定系统上的接口及其MTU


在xp下运行netstat,发现一堆功能,比如netstat -n可以显示当前连接的网络IP!,注意是netstat不是netstart


 


// ------------------------------------------------------------------------3-----------------------------------------------------------------


1.IP是TCP/IP协议族中最为核心的协议,所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传送.


2.不可靠性和无连接?
IP具有不可靠性,意思是它不保证IP数据报能成功到达目的地,它仅提供最好的传输服务,如果发生ERR,IP会:丢弃该数据报,然后发送ICMP消息报给信源端,任何要求的可靠性必须由上层上来提供(如TCP)
无连接意思是每个数据报的处理都是独立的,IP数据报可以不按发送顺序接收.


3.网络字节和X86字节差别?
只要记住X86内存中是高高低低原则,网络字节相反!


3.IP头?
一般IP头长为20个字节,除非含有选项字段
都是网络字节,依次顺序为:
版本协议号    --4位(bit) ---------目前协议版本为4,所以IP也称IPv4,大小4位
首部长度       --4位(bit) ---------IP头占32 bit字的数目,4位最大是15,15*32/8=60为IP头的最大长度
服务类型(TOS)---8位(bit)--------第4位开始四个位依次表示最小时延,最大吞吐量,最高可靠性和最小费用,第8位必须为0
总长度字段-----16位(bit)--------整个IP数据报的长度,以字节为单位,利用头长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度
标识字段-----16位(bit)-------唯一地标识主机发送的每一份数据,通常每发送一份报文它的值就会加1
标志-----3位(bit)
片位移------13位(bit)
生存时间(TTL(time to live))---8位(bit)----设置了数据报可以经过的最多路由器数,由源主机设置,一般为32或64,一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机
协议-------8位(bit)----根据它可以识别是哪个协议向I P传送数据
首部检验和字段-----16位(bit)------根据I P首部计算的检验和码。它不对首部后面的数据进行计算
源IP地址----32位
目标IP地址-----32位
选项--------32位的倍数


总结下,有协议,有源和目的地址,有检验码,有生存时间,好像基本的都有了吧!完整。。。


含IP路由功能的主机和路由器的区别?
本质区别在于主机不转发数据报,除非它被设置成那样,而路由器则要转发数据报


4.IP路由选择?
一般,IP从TCP.UDP.ICMP.IGMP接收数据报(本地生成的)或从一个网络接口接收数据报(待转发的)并进行发送,IP层在内存中有一个路由表,每次发送,都要对该表搜索一次,如果数据报来自某个网络接口,IP首先检查目的IP地址是否为本机的IP地址之一或IP广播地址,如是,数据报就被送到由IP头协议字段所指定的协议模块进行处理,否则,如IP层被设置为路由器的功能,那么就对数据报进行转发,否则数据报被丢弃.


5.子网寻址?
考虑到AB类地址为主机号分配了太多的空间,分别为2的24次方-2和2的16次方-2,而主机号可以由当地的系统管理员来进行分配,它能决定是否把这一块取一部分bit分给子网号,比如B类网,主机号占16bit,可以分成8bit用于子网号,8bit用于主机号,这样就允许有254个子网,每个子网有254台主机.
许多管理员都采用这种自然的划分方法,即B类留给主机的16bit,前8bit做为子网号,后8bit做为主机号,这样用点分十进制表示的IP地址比较容易确定子网号,大多数子网例子都是B类地址.
子网对外部路由器来说隐藏了内部的网络组织的细节


6.子网掩码
主机除了IP地址外,还需要知道有多少bit用于子网号以及多少bit用于主机号,这在引导过程中通过子网掩码来确定,子网掩码是一个32bit的值,其中值为1的bit留给网络号和子网号(这里网络号包括了最前面的几位),为0的bit留给主机号.子网掩码一般用16进制表示,
给定IP地址和子网掩码后,主机就可以确定IP数据报的目的地,


习题:
3.1 环回地址必须是127 . 0 . 0 . 1吗?
网络地址是 127的A类IP地址,这类地址称作 环回地址。但是我们经常使用的是 127.0.0.1 这个地址,所以只要网络地址是127都OK,特殊地址表提到了!
3.3 子网号为16 bit的A类地址与子网号为8 bit 的B类地址的子网掩码有什么不同?
根据定义,网络地址和子网号都用1表示,所以没有区别.


3.5 子网掩码2 5 5 . 2 5 5 . 0 . 2 5 5是否对A类地址有效?

它是合法的,被称为非连续的子网掩码,因为其用于子网掩码的1 6位是不连续的,但是RFC建议反对使用非连续的子网掩码,这个开始我判断错了,重点记下.



原文地址:http://blog.csdn.net/hgy413/article/details/7354204

0 0
原创粉丝点击