欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

常见网络协议相关总结socket,TCP/IP

程序员文章站 2022-03-15 22:09:11
常见网络协议相关总结socket,TCP/IP   1 tcp/ip ,tcp的相关编程。ip地址分为几类,如何用二进制编码区分?      tc...

常见网络协议相关总结socket,TCP/IP

 

1 tcp/ip ,tcp的相关编程。ip地址分为几类,如何用二进制编码区分?

     tcp与udp相比存在可靠的传输保证,三次握手协议等,但udp速度快,tcp要保证数据的接受要有序,每个数据包都有一个信号。而且tcp要求ack。

     tcp/ip由网络层的ip协议和传输层的tcp协议组成,协议采用了四层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。分为

          网络接口层

          网络层

          传输层

          应用层

     IP是网络层的核心,通过路由选择将下一条ip封装后交给接口层。

     ICMP是网络层的补充,可以回送报文,用来检测网络是否畅通。主要是网络通不通、主机是否可达、路由是否可用。

     ping命令就是发送icmp的echo包,或者是查询路由的tracert命令。

     arp是正向地址解析协议,通过已知ip,寻找对应主机的mac地址。

     RARP是反向

    

     传输层还是TCP和UDP

          TCP三次握手:

               第一次握手:建立连接时,客户端发送SYN(syn=j)包到服务器,并进入SYN_SEND状态,等待服务器确认

               第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。

               第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    

     应用层里面DNS提供域名解析服务,域名到ip地址的转换。

     TCP通过三次握手建立连接,通讯完成时要拆除链接,是一种可靠的数据流服务,包括带重传的肯定确认(传输的可靠性)和滑动窗口的技术(流量控制),是面向连接的所以只能用于点对点的通讯。重复包丢弃;流量控制;超时重发;检验数据;

     UDP面向无连接的通讯协议,数据包括目的端口号和源端口信息,可以实现广播发送。扣扣。

    

     IP地址分类:

          A类地址:1.0.0.1-126.255.255.255分 配给具有大量主机而局域网个数较少的网络。第一组为网络地址。

          B类地址:128.0.0.1-191.255.255.255 中型网络,一二组表示网络地址,后两组主机地址。

          C类地址: 192.0.0.1-223.255.255.255 前三组作为网络的地址,最后一组作为网络上的主机地址。

 

 

2 osi七层协议, TCP/IP四层分别是什么,各层作用,两种层次的区别

     第七层 应用层 HTTP FTP SSH SMTP POP3

     第六层 表示层 为不同的客户提供数据和信息的语法转换内码,使系统能解读成正确的数据,也能提供压缩解压,加密解密。(各种不同的传输目的地)

     第五层 会话层 为通信双方制定通信方式,创建,注销会话。数据流同步和重新同步。

     第四层 传输层 控制数据流量 并进行调试及错误处理,以确保通信顺利。

     第三层 网络层 网络层为数据传送的目的地寻址,再选择送出数据的最佳线路。

     第二层 数据链路层 管理第一层的比特数据,并且将正确的数据传送到没有传输错误的线路中。bridge或者switch

     第一层 物理层 在设备与传输媒质之间创建和终止链接。

 

 

3 routing的方法: distance-vector和linkstate(常用的路由协议)

前者路由以间接的方式获得路由信息,后者是每个路由器都有一个一致的全网拓扑图。

路由属于网络层,

-距离向量算法(distance-vector):对于每一条网络上节点的路径,算法指定一个成本,节点会选择一个成本最低的。启动时,所有节点都知道相邻节点和到相邻节点的成本,建立路由表之后这些信息同时送给邻居节点,从而铺满整个网络。当某个节点短线的时候,其会被邻居节点舍弃,同时信息也会被更新到整个网络的路由表中。

-连线状态算法(linkstate):每个节点都拥有网络的图谱,每个节点将自己可以连接到的其他节点资讯传送到网络上的所有节点,其他节点把这些信息加入到自己的图谱中,然后路由器根据图谱来决定自己到其他节点的最佳路径。

 

4 socket编程如何实现client和server

     socket相当于网络通信两端的插座。其定义类似于文件句柄的定义。

     对于服务器端:

          1 调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口

          2 调用accept()监听连接请求,若有,则接受连接,返回通信套接字。---采用死循环的方式加以控制

          3 调用Socket类的getOutStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收。

          4 关闭通信套接字 socket.close()

     对于客户端:

          1 调用Socket()创建一个流套接字,并连接到服务器端

          2 调用Socket类的getOutputStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接受。

          3 关闭通信套接字Socket.close()

 

 

5 ping用的是tcp/ip的什么协议,原理是什么? Traceroute用来记录经过的路由的个数。

     ICMP协议,internet control message protocol。发送了之后看返回值,或者看其是否能被返回。

     首先构建一个ICMP数据请求包,然后这个包被发给IP,包含源地址和目的地址,同时查询到目的地址对应的mac地址,然后加以发送,当接收到了之后会把它和自己的mac地址相对比,如果相符就接受。 从IP到mac的映射使用的是ARP

 

 

 

6 路由器和交换机的区别 router and switch and hub

     hub集线器,将一些机器连接起来组成局域网。

     交换机和集线器差不多,但是集线器是共享带宽的工作方式,而交换机是独享带宽。就像单车道与双车道。

     交换机最大的好处是快速。

     路由作用于连接不同的网段,而且找到网络中数据传输最合适的路径。

     路由在网络层,而交换机在第二层(将网络上各个电脑的MAC地址记在ARP表中,当局域网中电脑需要经过交换器去交换数据时,就查询交换器上的ARP表的信息。)

     路由器可以连接两个以上不同网段的网络,而交换器只能连接两个。

     交换机通过MAC地址来确定转发数据的目的地,而路由器是利用IP地址。

     路由器仅转发特定地址的数据包,不传送不支持路由协议的数据包传送,相当于有一层过滤功能,防止了广播风暴。

     交换机主要用于LAN-WAN连接,而路由器用于WAN-WAN的连接,可以解决异性网络之间转发分组。

 

 

7 什么是DHCP,CDP,SCCP/SIP

     DHCP:动态主机配置协议 从原有的BOOTP协议发展而来,原来的目的是为无盘工作站分配IP地址的协议,当前更多的用于对多个客户计算机集中分配IP地址,以及IP地址相关的信息的协议,这样就能将IP地址和TCP/IP的设置统一管理起来,从而避免不必要的地址冲突的问题。它提供了三种IP地址分配机制:

          自动分配--给客户机分配永久的地址

          动态分配--给客户机分配有一定租用期限的地址

          手动分配--由网络管理员给客户机分配地址,并通过DHCP传达给客户机。

         

     CDP(Cisco Discovery Protocol):是用来获取相邻设备的协议地址以及发现这些设备的平台。也可以为路由器的使用提供相关接口信息。它位于数据链路层,CDP配置的每台设备发送周期性信息,而且每台设备都至少广告一个地址,在该地址下,它可以接收SNMP信息。

    

     SIP:Session Initiation Protocol 信令控制协议。是一个应用层的信令控制协议,用于创建、修改和释放一个或多个参与则的会话。这些会话可以是Internet多媒体会议,IP电话或多媒体分发。

 

 

 

8 深入了解voip和ip(至少知道怎么算地址)

     IP:根据源主机和目的主机的地址传送数据。(不可靠的数据包传输机制)使用ARP解析MAC地址。尽管并不可靠,但是IPv4仍然规定通过在路由节点计算校验来确保IP数据包头的正确性,但如果不正确,会当场丢掉,并不会发送通知给任一个终端节点。但是ICMP可以用来检验。(如ping命令)    

     IP包最大大小16bit。使用32位地址,=网络地址+主机地址 or 网络地址+子网地址+主机地址

     网络地址是统一分配的,而主机地址是各个网络的系统管理员分配的。ipconfig /all  or  ifconfig

     A类地址:第一字节为网络地址,其它三个字节为主机地址;第一字节的第一位总是0: 1.0.0.0--127.255.255.255   10.x.x.x是私有地址 127.x.x.x是保留地址 用来测试

     B类地址:第一第二字节为网络地址,其它两个字节为主机地址,第一字节的前两位固定为10;128.0.0.0--191.255.255.255

     C类地址:前三个字节为网络地址,第四个为主机地址,第一个字节的前三位固定为110. 192.0.0.0--223.255.255.255

     D类地址:第一字节的前四位1110.D类地址 224.0.0.0--239.255.255.255

     E类地址:第一字节前四位1111. 240.0.0.0--255.255.255.255

     使用虚拟IP,ABC级的地址比如192.168.x.x。虚拟IP通过NAT(Network Address Translation)技术接入网络:解决了IP地址不足的问题,而且可以有效避免外部网络攻击,隐藏了内部的计算机。(其实就是使用少量的共有IP代替私有IP)使用静态转换(一对一);动态转换(合法ip地址有限);端口多路复用(使用端口地址转换,使得内部网络的所有主机都可以共享一个合法外部IP地址。)

     子网掩码是用来指明一个IP地址的哪些标识的是主机所在的子网以及哪些位标识的是主机的位掩码。将IP地址划分成网络地址和主机地址。

     (附:子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做AND运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。)

     两个作用:

          一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

          二是用于将一个大的IP网络划分为若干小的子网络。

     利用子网数或者主机数来计算子网掩码,一个是从前向后置一,一个是全置一之后从后往前置零。(最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。)

    

    

     VOIP:模拟声音信号数字化,以数据封包的形式在IP数据网络(IP Network)上做实时传递。基本原理是通过语音的压缩算法对语音数据编码进行压缩处理,然后把这些语音数据按TCP/IP标准进行打包,经过IP网络把数据包送至接收地,再把这些语音数据包串起来,经过解压处理后,恢复成原来的语音信号。从而达到互联网传送语音的目的。

     关键是IP网关,把各地区电话区号映射为相应地区网关IP地址。

     第一步将模拟声音数字化涉及到了语音编码方案;VoIP控制协议:H.323 SIP MEGACO 和 MGCP。

          H。323是一种ITU-T标准,最初用于局域网(LAN)上的多媒体会议,后来扩展至覆盖VoIP。这个标准既包括点对点通信,也包括多点会议。

          会话发起协议SIP 是建立VOIP连接的IETF标准,作为一种应用层控制协议,与HTTP有一些类似。用于和一个或多个参与者创建,修改和终止会话。

          媒体网关控制协议MGCP,它定义了呼叫控制单元(呼叫代理或媒体王光)与电话网关之间的通信服务。

     有一些缺点:

          通话质量收到网络好坏的影响

          停电时无法使用

          清晰度与固话相比还有差距

          存在被窃听的风险。

    

9 端口的概念

     1)按端口号分布划分

     知名端口:0-1023 21端口是ftp服务,25端口是SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务

     动态端口:1024-65535 只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。

     2)按协议类型划分

     TCP UDP IP和ICMP                                  

          TCP端口,传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口。

         

          UDP端口,用户数据包协议端口,无需建立连接,安全性得不到保障,常见的有DNS的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口。

  

  

10 SNMP协议

     简单网络管理协议 被设计成与协议无关,提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。

     

 

11 wlan和ethernet的概念

WLAN: wireless local area networks,利用射频技术RF(radio frequency),基于IEEE802.11标准。2.4or5.8GHZ (dual band)速度慢 存在干扰

     Architecture: Stations--Basic service set(一堆可以通信的stations)--Extended service set --Distribution System

     type:

          -Peer-to-Peer(ad-hoc)使用independent Basic Service Set(IBSS)

          IEEE802.11定义了基于CSMA/CA的物理层和MAC   Carrier Sense Multiple Access with Collision Avoidance

          802.11两种操作模式: ad-hoc(peer to peer) and infrastructure mode(access point as brige to a wired network)

Ethernet:

     for LAN. IEEE 802.3

     divide a stream of data into shorter pieces called frames. 每一帧包括了源和目的地的地址以及纠错数据。ethernet的服务到数据链路层为止.(48bit mac地址和ethernet frame概念)。 link level connection。

     Shared Media

          CSMA/CA 表示了计算机分享信道的方法

     Repeaters and Hubs(forward to all machines)

     Bridging and Switching

          bridging isolate bad packet.

          hub最简单,从一个端口发送向所有的其他端口,(小型网络 数据不太多的时候)

          bridge在发送之前看packet的目的地址。只有一个入端口,一个出端口。并且会检查目的地址是否在另一端来决定是否发送(通常用来分离网络的那些不需要经常通讯,但需要被连起来的部分)

          switch有多个端口,包会被阅读来看发送到哪个计算机。高效率了。 相同子网中用switch连接的比较多

          router与switch相似,它根据地址来推溯数据,但是它用的不是MAC地址,而是IP地址。这允许网络通过很多不同的协议 最常用的就是分享宽带网络连接。 router有一个公共的ip,这个ip在网络内共享。数据过来的时候,它就推送到正确的电脑。