这一部分编程较为简单,都有固定的模式,主要是对程序和协议的理解难以掌握,对于这种情况,如何去学好网络编程呢?

那么以下几个问题会让你初步深入网络编程,让你揭开网络编程的神秘面纱;

【1】什么是网络?

把独立自主的计算机连接起来就构成了网络,构建网络是为了实现计算机与计算机之间的信息交互和资源共享;

【2】什么是互联网?

把网络和网络连接起来就构成了互联网;

【3】OSI七层模型和tcp/ip模型对比,并说明各层的功能。

OSI七层模型:应表会传,网络层,数据链路层,物理层

tcp/ip四层模型:应用层 ,传输层 ,网络层 ,数据链路层;

1)ip地址是什么?MAC地址是什么?ip地址分类中   A类   B类   C类表示什么范围?

ip地址是在网络中用来唯一标识一台计算机的地址;MAC是机器的物理地址;

A:1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。

B:128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机

C:192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机;

D:广播;E:保留区;

2)tcp和udp协议的特点?

tcp是面向连接的,可靠的,基于流的服务;

udp是无连接的,不可靠的,基于数据报的服务;

既然tcp是面向连接的,那么体现在哪呢?是不是每次发送数据之前都要建立连接,怎么建立?代码执行到什么时候会进行三次握手?tcp可靠的特点体现在哪里?

tcp协议的通信双方必须建立tcp链接,并且在内核中为了该链接维持一些必要的数据结构;如连接状态,读写缓冲区,诸多定时器等;每次都要建立连接,通过三次握手来建立;

代码执行到connect()时会进行三次握手,建立连接;tcp可靠的原因:tcp协议有应认确答机制,超时重传机制;并且报头中有序列号,恢复报文顺序;还有滑动窗口控制流量;

拥塞控制;

【4】网络编程代码实现:

      socket   bind()     listen()      accept()       recv()       send()      close()         connect()