网络编程学习笔记(一)网络基础知识

1、网络通信协议:计算机网络中实现通讯必须有一些约定的协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。
2、网络通讯接口:为了使两个结点之间能进行对话,必须在它们之间建立通讯工具(即接口),使彼此之间能进行信息交换,接口包括两部分:
     (1)硬件装置:实现结点之间的信息传送(理解成网卡)
     (2)软件装置:规定双方进行通讯的约定协议
3、通讯协议分层:同层之间可以通讯,上一层可以调用下一层,而与再下一层不发生联系,各层互不影响,便于系统的扩展。网络协议分层通常把用户应用程序作为最高层,物理通讯线路作为最底层,将期间的协议处理分为若干层,规定每层处理的任务,也规定每层的接口标准。只要彼此之间接口不变,每一层都可以自己独立扩展。应用程序编程即只编应用的一层,底层的东西都被屏蔽掉了,不用关心,只要知道接口就可以。分层思想无处不在,上级给下级下达命令,也是一层一层,运用到分层的思想。
实际开发中,应用到的是四层模型,网络层(IP层)、传输层(TCP、UDP层)
通讯的传输过程:A机器—>A的应用程序层—>A的 TCPUDP层—>A的IP层—>A的物理层—>B机器的物理层—>B的IP层—>B的 TCPUDP层—>B的应用程序层—>B机器
  IP协议的最大的贡献就是提供了独一无二的IP地址,便于机器之间通讯。计算机内部用四个字节(IPV4)代表Ip地址,每一个部分是0-255.局域网里的是内网Ip,这个内网Ip实际是一个假Ip,内网里的所有机器连出去的话实际上只有一个IP,即作为网关的那一台机器的IP。由于可能Ip不够用了,扩展出了IPV6(8个字节)
  四个字节的IP地址中有一些字节可能是网络的IP,网络IP占一个字节的是A类网,两个字节的是B类网,三个字节的是C类网。网关机器一般有两块网卡,一块配的是公网,一块配的是内网。如果一台机器上的内容想让世界上所有的机器都能访问,必须要有公网的IP。
4、TCP协议和UDP协议
     TCP(transmission control protocol):专门设计用于在不可靠的因特网上提供可靠的、端到端的字节流通讯的协议。是一种面向连接的协议。TCP连接是字节流而非报文流。可靠的:必须先建立起连接,才能传输数据,每发一次数据都需要对方确认才会继续(TCP三次握手)。
     比如A和B打电话
     A:你好(必须等到B回复你好才会说下一句话)     B:你好
     A:明天一起跑步吧(必须得等到B回复才说下一句话)     B:好呀
     A:明天早上7点集合(如果B不回复“好呀 ”,A的“明天早上7点集合 ”就不会发出去)
     UDP(user data protocol):向应用程序提供了一种发送封装的原始IP数据报的方法、并且发送时无需建立连接,是一种不可靠的连接。还是刚才的例子:A说了明天一起跑步吧 ,不管B收没收到。
   TCP可靠,但是慢;UDP不可靠,但是快。比如说银行转账等交易的时候必须是TCP协议;而QQ视频等通讯则用的是UDP,丢一两个数据包并没有什么影响;玩游戏发射子弹用的是UDP;游戏等服务器传用户名和密码的时候用的是TCP。
原文地址:https://www.cnblogs.com/bjh1117/p/6393601.html