网络编程基础

计算机网络是通过通信设备将地理上分散的具有自治功能的多个计算机系统互连起来,进行信息交互资源共享与协同工作的系统。

互联网就是将各个网络串联起来,inter是最大的互联网。网络中通讯的主角是运行在不同机器上的两个进程。

我们要确定网络中通讯的两个进程需要两个信息:ip地址与端口号

IP地址:点分十进制的字符串,标识网络中的主机

端口号:标识主机上运行的进程

 

协议是一种约定,一种规定,各主机间必须遵守相应的协议才能通讯。

网络层次结构: OSI 协议模型、TCP/IP 协议模型

由于OSI协议模型过于庞大、复杂,所以TCP/IP协议模型获得了更为广泛的应用。

实际上有人也将这个模型划分为五层协议(5层):物理层、数据链路层、网络层、传输层、应用层

下层协议为上层协议提供服务

每一层的作用

1:物理层:主要定义物理设备标准,如网线的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特

2:数据链路层:建立在物理传输的基础上,以帧为单位传输数据。主要功能:成,差错控制,流量控制等,主要考虑相邻节点之间的数据交换。

3:网络层:实现数据包的选路与转发,通常使用众多分级的路由器来连接分散的主机或局域网,因此通讯的两台主机是通过多个中间节点(路由器)连接的,不是直接连接的。网络层的主要目的就是选择这些中间节点(路由器),确定两台主机之间的通信路径。网络层数据的传送单元是包或IP数据报

4:传输层: 主机之间提供端到端的通讯,只关心通讯的起始端与目的端,不在乎数据包的中转过程。主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,常常把这一层数据叫做TCP:报文段,UDP:用户数据报

5:会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路,主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。

6:表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。

7:应用层: 是最靠近用户的OSI层,这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务

TCP/IP四层模型有那些协议
 

应用层:

  • DNS (域名解析):域名和IP地址之间的相互转化
  • FTP(File Transfer Protocol)文件传输协议
  • HTTP (Hypertext Transfer Protocol)超文本传输协议
  • SMTP (Simple Mail Transfer Protocol)即简单邮件传输协议
  • TELNET 远程登录协议
  • DHCP(动态主机分配协议):负责IP地址的集中和动态分配管理
  • ping:利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障,发送ICMP进行检测

传输层:

  • TCP(Transmission Control Protocol)传输控制协议
  • UDP (User Datagram Protocol)用户数据报协议

网络层:

  • IP:(IPv4 · IPv6) 网络之间互连的协议
  • ICMP :用于检测网络连接。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器

数据链路层(对于ARP和RARP四层模型是在数据链路层,七层模型归为网络层)

  • ARP : 地址解析协议,实现通过IP地址得知其物理地址。
  • RARP :反向地址转换协议允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。

使用UDP和TCP协议的各种应用和应用层协议

常用的熟知端口

端口号有16位,即0----65535

0----1024普通用户无法使用,1024----5000一般是系统保留,对于我们用户使用往往是5000往上

数据的封装与分用

我们上面说了:下层协议为上层协议提供服务,那么它是怎么提供服务的呢,其实就是通过封装实现的。应用数据发送到物理网络之前,将沿着协议栈从上往下依此传递,每层协议都在上层协议的基础上加上自己的头部信息以实现该层功能。

当帧到达目的主机时,就将沿着协议栈自底向上依次传递。各层协议处理帧中本层负责的头部信息获取所需信息,将处理后的帧交给目标应用程序(即每一层处理完后将自己的头部去掉,往上层传递)

网络中的数据传输的真实情况如下图所示:

可以看出对于传输层提供端到端的通讯,只关心通讯的起始端与目的端,不在乎数据包的中转过程。但是网络层就需要进行数据包的选路转发,所以需要知道数据包传输的路径(即选择那个路由器)。

我画的不好,给你们一个系统的数据传输图叭。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值