网络编程的基本概念

272 阅读3分钟

一.网络中的地址(IP) 作用:给Internet上的电脑一个编号,用于电脑间的连接。每个IP地址都包含两部分:网络ID和主机ID。网络ID标识在同一个物理网络上的所有主机,主机ID标识该物理网络上的每一个主机。 在这里插入图片描述

二.网络中的端口

为什么有端口:大部分设备(终端)都只有一个IP,那么当我们和一个服务器进行通信时就无法与服务器进行通信,比如我们我们在进行邮件服务(发邮件)就不能进行聊天了。为了解决这个问题,端口的概念由此而生。 端口作用:不同端口对应不同服务,使计算机的应用进程能够互相通信。

在这里插入图片描述 端口的种类: 1.公认端口 :这类端口也常称之为"常用端口"。 这类端口的端口号从0到1024,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。

例如: 80端口实际上总是HTTP通信所使用的,而23号端口则是Telnet服务专用的。这些端口通常不会像木马这样的黑客程序利用。

2.注册端口(Registered Ports) :端口号从1025到49151。

它们松散地绑定于一-些服务。也是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义,如远程控制软件和木马程序中都会有这些端口的定义的。

3.动态和/或私有端口 :端口号从49152到65535 (不要轻易作为服务器的监听端口)。

理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。

端口并非只有服务器才会使用,客户端也一样会使用端口。 比如:当客户端与服务器建立了连接后,客户端会动态分配一个动态端口,来进行与服务器的数据传递。所以请不要轻易占用动态端口。

三.协议

什么是协议? 协议其实就是计算机语言,既然是语言,就要遵守发音,语法的规则。然后在我们人类社会中,我们使用喉咙发音,而在计算机中使用二进制发音,那我用几个二进制数合在一起发音,就需要语法来规定了。就比如TCP协议中包头的源端口,我们规定前十六位为合在一起表示它。有了协议才有了计算机的正常交流。 TCP协议包头说明: 在这里插入图片描述