• TCP/IP基础知识


    1、网络通信的核心 -- 以分组的形式将数据从一个系统传输到另一个系统。

    2、IP协议。TCP/IP将数据位封装成分组,再增加一些头字段说明应把数据发送到哪里去。

    3、分组(Packet),数据报(Datagram)。

    如果需要发送的数据超过单个分组的容量,可以将数据分成多个组,然后以若干连续的分组形式发送数据。

    4、UDP(User Datagram Protocol,用户数据报协议)

    可以采用UDP协议在Internet上发送数据报。UDP协议依赖IP协议执行寻址和路由。UDP协议的常见应用有SNMP和TFTP。采用UDP协议发送的数据可能无法按顺序到达,有些数据可能被延迟,甚至偶尔会全部丢失。

    5、TCP(Transmission Control Protocol,传输控制协议)

    TCP协议保证能够按照发送分组的顺序将数据可靠地送达目的地。TCP协议常见的应用有FTP、SMTP、HTTP和Telnet。TCP协议也依赖IP协议。不同于UDP的是,TCP在整个传输会话期间都支持端到端的连接。TCP不但要建立连接,还要确保可靠有序的数据传输。

    6、套接字

    在TCP会话的两端,每个端点的访问对象是套接字,其目的是发送和接收数据。

    7、ISO七层网络协议模型,网络协议栈

    按照七层协议模型,网络连接应分为七个层次,每个层次只能与其紧邻的上下两层进行对话,但每个层次的通信对象位于远程系统的同一层次。

    8、TCP/IP四层网络架构模型

    (1)应用层(如HTTP、POP3、IMAP等网络协议);(2)传输层(TCP和UDP协议);(3)网络层(分组和IP地址);(4)数据链路层(帧和MAC地址)。

    9、ICMP(Internet Control Message Protocol,Internet控制消息协议)

    消息控制和错误报告。Java不支持ICMP。采用ICMP协议传输原始数据,只是请求远程系统执行某种处理,或以某种方式给予适当响应,并不传输应用数据。

    10、数据流套接字

    采用TCP协议,以可靠的方式传输数据,但速度相对较慢。

    11、数据报套接字

    采用UDP协议,以不可靠的方式传输数据,但速度相对较快。

    12、客户端套接字

    用于请求服务器提供信息。

    13、服务器套接字

    用于监听请求并提供服务。

    14、IPV4和IPV6

    IPV4使用32位地址,IPV6使用128位地址,IPV6完全兼容IPV4。

    15、NAT(Network Address Translation,网络地址转换)

    应用NAT技术,位于防火墙后面的计算机可以使用任何IP地址,这些地址可以与其他网站防火墙后面的计算机使用的IP地址完全相同。

    16、路由器

    至少配有两个接口,用于连接两个不同的网段。根据IP地址,路由器将会在必要时将分组数据从一个网络转发到另一个网络上。

    17、交换机

    使用MAC地址进行交换。每个计算机都采用一根专线与交换机直连。交换机将数据帧转发到目的地,或与目的地最近的路由器。数据帧进入交换机时,交换机检查MAC地址,将数据帧发送到与该MAC地址相连的端口。

    18、集线器

    并不关心IP地址,只是将接收到的数据帧传输到与其相连的每一台机器。只有与数据帧目的地址相同的计算机才会接收数据。连接到集线器的所有计算机将共享同一网络连接,即共享同一网络传输带宽。

    19、DNS(Domain Name Server,域名服务器)

    实现计算机名字和IP地址的相互转换。

    20、防火墙

    检测来自Internet或外部网络的数据流,防止未经授权的非法访问进入内部专网。防火墙采用不同检测技术,过滤来自外部网络的分组数据。

    21、代理服务器

    拦截客户机提交实际服务器的所有请求,利用缓存数据回复客户机请求,代理服务器可用于拒绝客户端访问一组网站或网络服务。

    22、网络通信库

    (1)Socket,客户端套接字,使用户能够打开与Internet上任意一台计算机之间的连接。

    (2)ServerSocket,服务端套接字,允许应用程序接受其他系统的TCP连接请求,并与之进行交互通信。

    (3)URL(Uniform Resource Locator,通用资源定位器)用于引用WEB资源。

    (4)URLConnection,可以使用这个类打开一个URL连接,读取其中的内容或发送数据。

    (5)HttpURLConnection,扩展了URLConnection,支持HTTP特定的功能。

    (6)URIEncoder/URLDecoder,提供静态方法,能够在字符串和MIME x-www-form-urlencoded格式之间进行转换。

    23、现实中大多数局域网采用交换机直连,证实在局域网采用UDP协议将会同时取得高性能和可靠性。

    24、Socket API

    无参构造函数可用于创建一个尚未建立连接的套接字,之后通过调用bind()方法把套接字绑定到指定的主机和端口号,绑定之后调用connect()方法建立连接。如果开始就知道主机和端口号参数,可以直接调用适当的构造函数。

    setSoTimeout(int ms),So即Socket,用于设置套接字的超时值(单位为毫秒),当超时值ms为非零值时,如果读套接字的方法调用处于封锁状态,当等待时间达到参数中指定的超时时间量时,即可退出封锁状态,同时会引发一个SocketTimeoutException异常。

    setSocketImplFactory()方法可用于那些想按自己的想法实现套接字,处理防火墙或代理问题的网站。

  • 相关阅读:
    Educational Codeforces Round 64 (Rated for Div. 2)题解
    Codeforces Round #555 (Div. 3) F. Maximum Balanced Circle
    莫队算法总结
    cobalt strike使用笔记
    CMD命令行下载文件
    CTF线下赛AWD模式下的生存技巧
    python中multiprocessing模块
    密码重置
    python中的argparse模块
    python中BeautifulSoup模块
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/2772557.html
Copyright © 2020-2023  润新知