TCP/IP笔记

 

TCP/IP笔记 四.应用层(1)——DNS

分类: 网络   133人阅读  评论(1)  收藏  举报

目录(?)[+]

1. DNS

DNS(Domain Name System ):域名系统,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP


2. 域名结构

通常 Internet 主机域名的一般结构为:

主机名.三级域名.二级域名.顶级域名

2.1 顶级域名 TLD (Top Level Domain)

(1) 国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
(2) 国际顶级域名 iTLD:采用.int。国际性的组织可在 .int 下注册。
(3) 通用顶级域名 gTLD:最早的顶级域名是:
    .com 表示公司企业
    .net 表示网络服务机构
    .org 表示非赢利性组织
    .edu 表示教育机构(美国专用)
    .gov 表示政府部门(美国专用)
    .mil 表示军事部门(美国专用) 

2.2 域名服务器

本地域名服务器应该是大型单位或当地的网络运营商拥有;主域名服务器应该归网通、电信这种等级的主干运营商或政府所有;

根域名服务器(Root Name Server)

根域名服务器是网络中的核武,根域名服务器出现故障将会导致大面积,如果所有的RNS瘫痪,那么整个DNS系统就无法工作。

全球的13组根域名服务器,名字从a到m。域名分别为a.rootservers.net,...,m.rootservers.net。RNS中1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本,由互联网域名与号码分配机构ICANN统一管理。


3. DNS解析

(1)host向本地域名服务器的查询一般都是采用递归查询(recursive query)

Recursive Query:如果host(主机)询问的LNS(Local Name Server 本地域名服务器)不知道被查询的IP地址,那么LNS就替代host向RNS查询。

(2)本地域名服务器向根服务器查询一般采用迭代查询(iterative query)

Iterative Query:当RNS收到LNS的查询时,其返回结果为:a.被查询的IP;b.应该向哪一个DNS查询的IP


4. 故障排查

4.1 nslookup(网路查询)

要想百分之百判断是否为DNS解析故障就需要通过系统自带的NSLOOKUP来解决了。
(1)确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。
(2)输入nslookup命令后回车,将进入DNS解析查询界面。
(3)命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的DNS服务器IP为202.106.0.20。
(4)接下来输入你无法访问的站点对应的域名。假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。
小提示:如果DNS解析正常的话,会反馈回正确的IP地址。

4.2 查询DNS服务器工作是否正常:

这时候我们就要看看自己计算机使用的DNS地址是多少了,并且查询他的运行情况。
(1)通过“开始->运行->输入CMD”后回车进入命令行模式。
(2)输入ipconfig/all命令来查询网络参数。
(3)在ipconfig /all显示信息中我们能够看到一个地方写着DNS SERVERS,这个就是我们的DNS服务器地址。例如笔者的是202.106.0.20和202.106.46.151。从这个地址可以看出是个外网地址,如果使用外网DNS出现解析错误时,我们可以更换一个其他的DNS服务器地址即可解决问题。
(4)如果在DNS服务器处显示的是自己公司的内部网络地址,那么说明你们公司的DNS解析工作是交给公司内部的DNS服务器来完成的,这时我们需要检查这个DNS服务器,在DNS服务器上进行nslookup操作看是否可以正常解析。解决DNS服务器上的DNS服务故障,一般来说问题也能够解决。

4.3 清除DNS缓存信息法:

(1)通过“开始->运行->输入CMD”进入命令行模式。
(2)在命令行模式中我们可以看到在ipconfig /?中有一个名为/flushdns的参数,这个就是清除DNS缓存信息的命令。
(3)执行ipconfig /flushdns命令,当出现“successfully flushed the dns resolver cache”的提示时就说明当前计算机的缓存信息已经被成功清除。
(4)接下来我们再访问域名时,就会到DNS服务器上获取最新解析地址,再也不会出现因为以前的缓存造成解析错误故障了。

4.4 修改HOSTS(主机)文件法:

(1)进入c:\windows\system32\drivers\etc目录中找到HOSTS文件。如果你的系统是windows 2000,那么应该到c:\winnt\system32\drivers\etc目录中寻找。
(2)双击HOSTS文件,然后选择用“记事本”程序将其打开。
(3)之后我们就会看到HOSTS文件的所有内容了,默认情况下只有一行内容“127.0.0.1 localhost”。(其他前面带有#的行都不是真正的内容,只是帮助信息而已)
(4)将你希望进行DNS解析的条目添加到HOSTS文件中。具体格式是先写该域名对应的IP地址,然后空格接域名信息。
(5)设置完毕后我们访问网址时就会自动根据是在内网还是外网来解析了。

 

TCP/IP笔记 二.网络层(3)——广播,多播,IGMP

分类: 网络   206人阅读  评论(0)  收藏  举报

目录(?)[+]

1. 多播与广播

1.1 广播

一般说来ARP,或者路由协议RIP应该是以广播的形式播发的。


1.2 多播

多播可明显地减少网络中资源的消耗。

1.2.1 特点

(1) 多播使用组地址—— IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。  
(2) 永久组地址——由因特网号码指派管理局 IANA 负责指派。
(3) 动态的组成员 
(4) 使用硬件进行多播


1.2.2 D 类 IP 地址 与以太网多播地址的映射关系

1.2.3 多播地址

对于多播地址,有几个特殊的多播地址被占用,他们是

  1. 224.0.0.1--该子网内所有的系统组。
  2. 224.0.0.2--该子网内所有的路由器。
  3. 224.0.1.1--网络实现协议NTP专用IP。
  4. 224.0.0.9--RIPv2专用IP

1.3 广播和多播

转:

『个人的看法:广播和多播的性质是一样的,路由器会把数据放到局域网里面,然后网卡对这些数据进行过滤,只拿到自己打算要的数据,比如自己感兴趣的多 播数据,自己感兴趣的组播数据。当一个主机运行了一个处理某一个多播IP的进程的时候,这个进程会给网卡绑定一个虚拟的多播mac地址,并做出来一个多播 ip。这样,网卡就会让带有这个多播mac地址的数据进来,从而实现通信,而那些没有监听这些数据的主机就会把这些数据过滤掉,换句话说,多播,是让主机 的内核轻松了,而网卡,对不起,您就累点吧。』


2. IGMP (Internet Group Management Protocol) 因特网组管理协议 

IGMP 是在多播环境下使用的协议,IP 数据报传递其报文。

IGMP的作用在于,让其他所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。


2.1 主机在多播中的状态


2.2 报文

2.3 多播路由选择

(1) 即使网络拓扑不发生变化,但由于某个应用程序加入或离开了一个多播组,多播路由都会发生变化。
(2) 多播转发要求路由器不仅要检查目的地址,而且还要检查源地址,以便确定何时需要复制多播数据报和转发多播数据报副本。
(3) 多播数据报可以由不是多播组成员的主机产生,并且可能通过没有任何组成员的网络。

 

TCP/IP笔记 二.网络层(1)——IP,子网,CIDR

分类: 网络   308人阅读  评论(0)  收藏  举报

目录(?)[+]

1. IP

1.1 配套协议

IP 是 TCP/IP 体系中两个最主要的协议之一 。

与 IP 协议配套使用的还有四个协议:  
(1)ARP (Address Resolution Protocol)地址解析协议 
(2)RARP (Reverse Address Resolution Protocol)逆地址解析协议 
(3)ICMP(Internet Control Message Protocol)因特网控制报文协议 
(4)IGMP(Internet Group Management Protocol) 因特网组管理协议


1.2. IP 划分

(1)分类的 IP 地址:这是最基本的编址方法,在 1981 年就通过了相应的标准协议。
(2)子网的划分:这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。
(3)构成超网:这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。

1.3. IP <---->MAC

在网络传输中:MAC变化, IP地址变化

IP --> MAC  : ARP

IP<-- MAC:RARP

1.4 IP格式

一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。 

(1)版本:IPV4,IPV6

(2)首部长度:占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是60字节

(3)服务类型:占 8 bit,用来获得更好的服务这个字段以前一直没有被人们使用 
(4)总长度:占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。

(5)标识(identification)    占 16 bit,它是一个计数器,用来产生数据报的标识

(6)标志(flag):3位, MF|DF|0 , 

    MF:还有分片?

    DF:不可分片?

(7)片偏移:单位8byte

(8)TTL(time to live):数据报在网络中的寿命,其单位为秒


2. 分类的 IP 地址

网络号:net-id,它标志主机(或路由器)所连接到的网络

主机号:host-id,它标志该主机(或路由器)

                                                  IP 地址 ::= { <网络号>, <主机号>} 



3. 划分子网

3.1 有点

(1)安全

(2)控制广播风暴

(3)易于管理

3.2 格式

从主机号借用若干个比特作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个比特

                         IP地址 ::= {<网络号>, <子网号>, <主机号>} 

3.3 子网掩码

Sub Net Mask:找出 IP 地址中的子网部分

IP & Mask = net-id + sub-id

IP | Mask = host-id


4. CIDR(Classless Inter-Domain Routing)超网

128.14.32.0/20

4.1 特点

(1)CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
(2)CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
(3)IP 地址从三级编址(使用子网掩码)又回到了两级编址。

4.2 格式

                         IP地址 ::= {<网络前缀>, <主机号>}  


这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。

 

TCP/IP笔记 二.网络层(2)——ICMP,RIP,OSPF,BGP

分类: 网络   221人阅读  评论(0)  收藏  举报

目录(?)[+]

1. ICMP

ICMP (Internet Control Message Protocol) 作用:提高 IP 数据报交付成功的机会。

1.1 特点

ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。


1.2 格式

1.3 报文类型


种类类型
差错报文3终点不可达
4源站抑制
11时间超过
12参数问题
5改变路由(重定向)
询问报文8或0会送请求或回答
13或14时间戳请求或回答


1.4 应用

(1)Ping(Packet InterNet Groper)

ping可以说是ICMP的最著名的应用,当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。一般的信息如下:

Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255

Ping statistics for 10.4.24.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

ping这个单词源自声纳定位,而这个程序的作用也确实如此,它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。我们可以看到, ping给出来了传送的时间和TTL的数据。我给的例子不太好,因为走的路由少,有兴趣地可以ping一下国外的网站比如sf.net,就可以观察到一些 丢包的现象,而程序运行的时间也会更加的长。
ping还给我们一个看主机到目的主机的路由的机会。这是因为,ICMP的ping请求数据报在每经过一个路由器的时候,路由器都会把自己的ip放到该数 据报中。而目的主机则会把这个ip列表复制到回应icmp数据包中发回给主机。但是,无论如何,ip头所能纪录的路由列表是非常的有限。如果要观察路由, 我们还是需要使用更好的工具,就是要讲到的Traceroute(windows下面的名字叫做tracert)。

2. Router 选择协议

(1)内部网关协议 IGP (Interior Gateway Protocol)    即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
(2)外部网关协议EGP (External Gateway Protocol)    若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。  



2.1 RIP(Routing Information Protocol)

2.1.1 工作原理
RIP 是内部网关协议 IGP中最先得到广泛使用的协议,是一种分布式的基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。


(1)给每一个已知的路由器发送rip请求报文,要求其他路由器给出完整的路由表。这种报文的命令字段为1,地址字段为0,度量地段为16(相当于无穷大)。

(2)接受请求,如果接收到刚才的那个请求,就把自己的完整的路由表交给请求者。如果没有,就处理IP请求表项,把表项中自己有的部分添上跳数,没有的部分添上16。然后发给请求者。

(3)接受回应。更新自己的路由表。使用hop数小的规则。 

(4)定期更新路由表,一般是30s(真频繁)给相邻的路有启发一次自己的路由表。这种形式可以使广播形式的。 


距离:RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。

RIP 允许一条路径最多只能包含 15 个路由器,RIP 只适用于小型互联网


2.1.2 优缺点

(1)RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
(2)RIP 协议最大的优点就是实现简单,开销较小。
(3)RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
(4)路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加
.

缺点:好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。


2.1.3 RIP2报文格式

2.2 内部网关协议 OSPF

OSPF (Open Shortest Path First)

2.2.1 基本特点
(1)“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
(2)“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
(3)OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
(4)分布式的链路状态协议。 

2.2.2 三要点

(1)向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
       “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
(3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。  

注意与RIP协议的区别

2.2.3 区域

OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域

好处:

(1)将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。

(2)在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况,这样就减少了link-state database

2.2.4 OSPF 直接用 IP 数据报传送

(1)OSPF 不用 UDP 而是直接用 IP 数据报传送,可见 OSPF 的位置在网络层。
(2)OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
(3)数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。 

2.3 外部网关协议 BGP

BGP 是不同自治系统的路由器之间交换路由信息的协议。

2.3.1 发言人

每一个AS(自治系统)的管理员要选择至少一个路由器作为该自治系统的“BGP 发言人” 。

不同AS之间的通信是靠“发言人”交换信息完成的(通过TCP链接通信)。

2.3.2 BGP-4 报文

(1) 打开(Open)报文,用来与相邻的另一个BGP发言人建立关系。
(2) 更新(Update)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
(3) 保活(Keepalive)报文,用来确认打开报文和周期性地证实邻站关系。
(3) 通知(Notificaton)报文,用来发送检测到的差错。微笑



【基于Python的大麦网自动抢票工具的设计与实现】 随着互联网技术的发展,网络购票已经成为人们生活中不可或缺的一部分。尤其是在文化娱乐领域,如音乐会、演唱会、戏剧等活动中,热门演的门票往往在开售后瞬间就被抢购一空。为了解决这个问题,本论文探讨了一种基于Python的自动抢票工具的设计与实现,旨在提高购票的成功率,减轻用户手动抢票的压力。 Python作为一种高级编程语言,因其简洁明了的语法和丰富的第三方库,成为了开发自动化工具的理想选择。Python的特性使得开发过程高效且易于维护。本论文深入介绍了Python语言的基础知识,包括数据类型、控制结构、函数以及模块化编程思想,这些都是构建抢票工具的基础。 自动化工具在现代社会中广泛应用,尤其在网络爬虫、自动化测试等领域。在抢票工具的设计中,主要利用了自动化工具的模拟用户行为、数据解析和定时任务等功能。本论文详细阐述了如何使用Python中的Selenium库来模拟浏览器操作,通过识别网页元素、触发事件,实现对大麦网购票流程的自动化控制。同时,还讨论了BeautifulSoup和requests库在抓取和解析网页数据中的应用。 大麦网作为国内知名的票务平台,其网站结构和购票流程对于抢票工具的实现至关重要。论文中介绍了大麦网的基本情况,包括其业务模式、用户界面特点以及购票流程,为工具的设计提供了实际背景。 在系统需求分析部分,功能需求主要集中在自动登录、监控余票、自动下单和异常处理等方面。抢票工具需要能够自动填充用户信息,实时监控目标演的票务状态,并在有票时立即下单。此外,为了应对可能现的网络延迟或服务器错误,工具还需要具备一定的错误恢复能力。性能需求则关注工具的响应速度和稳定性,要求在大量用户同时使用时仍能保持高效运行。 在系统设计阶段,论文详细描述了整体架构,包括前端用户界面、后端逻辑处理以及与大麦网交互的部分。在实现过程中,采用了多线程技术以提高并发性,确保在抢票关键环节的快速响应。此外,还引入了异常处理机制,以应对网络故障或程序错误。 测试与优化是确保抢票工具质量的关键步骤。论文中提到了不同场景下的测试策略,如压力测试、功能测试和性能测试,以验证工具的有效性和稳定性。同时,通过对抢票算法的不断优化,提高工具的成功率。 论文讨论了该工具可能带来的社会影响,包括对消费者体验的改善、对黄牛现象的抑制以及可能引发的公平性问题。此外,还提了未来的研究方向,如增加多平台支持、优化抢票策略以及考虑云服务的集成,以进一步提升抢票工具的实用性。 本论文全面介绍了基于Python的大麦网自动抢票工具的设计与实现,从理论到实践,从需求分析到系统优化,为读者提供了一个完整的开发案例,对于学习Python编程、自动化工具设计以及理解网络购票市场的运作具有重要的参考价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值