网络基础知识(TCP/IP)
网络是可以交换数据的互相连接的计算机的集合,网络类型很多,如LAN(局域网)、WAN(广域网)、internet(互联网)。
为了确保所有的传输平稳的运行,网络建立在协议之上。
协议就是一组规定,它描述了数据传送的格式。协议描述了通过网络如何交流数据,这可以和人类语言相比较:在最底层每一个人都可以发出和听到声音(比较:电子信号),但是只有使用双方都知道的语言(比较:协议),人们才可以交流信息。
以太网(Ethernet)
网络工作在通信协议之上,协议有多层,在交流过程中每一层协议都有各自的任务。
现在非常普遍的是使用TCP/IP的以太局域网(Ethernet LAN)。在局域网中,计算机可以用同轴电缆,双交线或光纤连接起来。
现在大多数网络使用双交线连接。
介质访问控制(MAC)层
以太网的最底层是硬件层,成为介质访问控制层。列如网卡属于该层,它包含了串行网络接口和一个控制器,控制器帮助它将原始数据转换为电子信号,并发送到正确位置。
通过网络发送的封包当然需要到达它们的目的地,因此必定存在一些寻址方式。以太网接口的各层都有不同的寻址方式,在最下面的MAC层
寻址是通过MAC号进行的。
MAC号是一个48位的标识,他被硬性分配到每一个网络接口单元。这些号码是由IEEE注册权威分配的,它们保证每一个以太网分点都有一个
世界上唯一的号码,MAC号通常用以冒号分割的16进制数标识如 14:74:A0:17:95:D7。
为了将封包发送到其他网络接口,封包应该包含MAC号。LAN使用非常简单的方法———广播发送封包到正确接口。这意味着网卡会发送封包到他所能到达的每个接口。每个接收封包的接口查看封包的目的MAC号,仅在同自己的MAC号相同时才处理。
网际协议(IP)层
硬件层之上是IP层,IP层与MAC层相似也有自己的寻址方式,通过IP地址进行寻址
IP地址是用来在网络接口的IP层进行寻址的,最广泛使用的版本是IPv4,它是一个32位的值,以众所周知的点格式表示,如209.217.52.8.与MAC地址不同IP地址没有集成到硬件中,它是在自己的软件层设置的。
互联网使用IP地址来唯一的标识一个计算机,IP地址可以通过软件分配给网络接口,做这项工作时软件会将IP地址和网络接口的MAC地址关联到一起。
为了使用IP进行寻址,关联的MAC地址需要保存起来,这由ARP(地址解析协议)负责。
每个主机都维护了一个记录IP和MAC地址对的清单,如果用户使用的IP地址没有在此清单中,主机发出一个询问包到局域网的其他计算机,以获取与之相匹配的MAC地址。如果此局域网中有设备能够识别此IP地址,他送回对应的MAC地址:如果没有封包会被送到网关,发送封包到外部网络的计算机。IP到MAC的转化实际是在数据链路层进行的。IP协议添加源地址和目的地址到封包,同时也添加其它封包属性,如TTL(生存时间),使用的协议版本、校验头(CIPheader结构)等。
传输控制协议(TCP层)
IP层之上是TCP层,这层距离网络应用程序非常接近,要做的事情很多。
TCP为寻址增加了最有一个限制————端口号。
IP地址用来寻址指定的计算机或网络设备,而端口号是用来确定运行在目标设备上的哪个应用程序来接收封包。 端口号是16位的,范围在0~65535之内。在设备上寻址端口号是经常使用的符号是 IP:portnumber ,列如,209.218.56.8:80。连接的两端都要使用端口号,但没有必要相同。
许多公共服务器都是用固定的端口号,如www(万维网)使用的是80;FTP(文件传输协议)使用的是21,E-mail(邮件传输协议)使用的是25,110(pop3,邮局协议),自定义服务一般使用1024以上的端口号。
IP层不关心数据是否传输成功,但TCP层关心。TCP层确保数据正确的到达。它也让接收者控制数据流动,列如,接受者可以决定什么时候接收数据。如果一个封包在到达目的地的途中丢失了,那么TCP重发此包。如果封包到达的顺序与原始顺序不同,那么TCP会为它们排序。
TCP是面向连接的,它是传输连续数据流的最好选择。
软件层
TCP层之上是网络软件。在windows下应用程序并不直接访问TCP层,而是通过winsock API访问。软件层提供了非常方便的访问网络的 方式。
由于有所有下层协议的存在,在软件层不必担心封包,封包大小,数据错误,对丢失封包的重发等。。