提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
局域网,即 Local Area Network,简称LAN。Local 即标识了局域网是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。

局域网除了上图所示基于交换机和路由器组建方式外,还可以通过交换机、集线器、及网线直连的方式组建
广域网,即Wide Area Network,简称WAN。通过路器将多个局域网连接起来,在物理上组成很大范围的网络就形成了广域网。广域网内部的局域网都属于其子网。

所谓"局域网"和"广域网"只是一个相对的概念。比如,我们国家的广域网,也可以看做一个比较大的局域网。
IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。(IP地址用于定位主机的网络地址。)
比如发送快递,需要知道对方的收货地址,快递员才能将包裹送到目的地。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)如:100.4.5.6。
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1,本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。
IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进
程来接收这个数据呢?这就需要端口号来标识。
在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简
单说:端口号用于定位主机中的进程。
比如发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。
端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。
一个进程启动后,系统会随机分配一个端口(启动端口)程序代码中,进行网络编程时,需要绑定端口号(收发数据的端口)来发送、接收数据。进程绑定一个端口号后,fork一个子进程,可以实现多个进程绑定一个端口号,但不同的进程不能绑定同一个端口号。线程与进程可以了解一下这个
有了IP地址和端口号,可以定位到网络中唯一的一个进程,但是网络通信是基于二进制数据来传输,基于网络数据传输,需要使用协议来规定双方的数据格式。
网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。只有遵守这个约定,计算机之间才能相互通信交流。通常由三要素组成:
数据与控制信息的结构或格式;
类似打电话时,双方要使用同样的语言:普通话
需要发出何种控制信息、完成何种动作以及做出何种响应;
语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
即事件实现顺序的详细说明。时序定义了何时进行信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。
系统端口号范围为 0 ~ 65535,其中:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使用的应用层协议,如:
22端口:预留给SSH服务器绑定SSH协议
80端口:预留给HTTP服务器绑定HTTP协议
443端口:预留给HTTPS服务器绑定HTTPS协议
类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):

通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。所以即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程。


最常见的场景,客户端是指给用户使用的程序,服务端是提供用户服务的程序:

互联网协议地址,IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。(IP地址用于定位主机的网络地址。)
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
IP地址分为两个部分,网络号和主机号
通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。通过划分网络来确定

主机最大连接数减去2,是扣除主机号为全0和全1的特殊IP地址。
将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有
主机发送数据包;
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1;
本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。
子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度; 右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。子网掩码也可以使用二进制所有高位1相加的数值来表示。
将某个IP地址划分成网络地址和主机地址两部分
如一个B类IP地址:191.100.0.0,按A ~ E类分类来说,网络号二进制数为16位网络号+16位主机号。假设使用子网掩码 255.255.128.0(即17) 来划分子网,意味着划分子网后,高17位都是网络位/网络号,也就是将原来16位主机号,划分为1位子网号+15位主机号。此时,IP地址组成为:网络号+子网号+主机号,网络号和子网号统一为网络标识(划分子网后的网络号/网段)
用于标识网络设备的 硬件物理地址 。
TCP,即Transmission Control Protocol,传输控制协议。人如其名,要对数据的传输进行一个详细的控制。

URG:紧急指针是否有效
ACK:确认号是否有效
PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走
RST:对方要求重新建立连接;我们把携带RST标识的称为复位报文段
SYN:请求建立连接;我们把携带SYN标识的称为同步报文段
FIN:通知对方,本端要关闭了,我们称携带FIN标识的为结束报文段
指发送本报文段的一方的接收窗口(而不是自己的发送窗口)。
先讲到这里,下篇再进行完善吧,这个实在是鸽太久了