tcp协议

服务器socket

强颜欢笑 提交于 2020-03-30 07:04:27
做了一个web项目,放在服务器上运行一段时间就报错了。 java.net.SocketException: No buffer space available (maximum connections reached?): connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl

TCP/IP 之网络层

回眸只為那壹抹淺笑 提交于 2020-03-30 06:48:33
视因特网为一个暗箱 视因特网为一个组合 数据报无序到达,然后组装成完整的报文 有个流标号flow label 这个标记指引数据报的行走路径,统一的到达目的地(这是我自己的理解) 请求分组 确认分组(当所有路由器都为特定的虚电路创建了各自的路由表之后,属于同一个报文的所有网络层分组就可以一个接一个地发送出去。) 一个具体的发邮件的例子(爱丽丝向鲍勃发邮件) 网络层,源计算机提供的服务(网络层收到来自于上层的几个信息:数据、数据长度、逻辑地址、协议ID以及服务类型。网络层对这些信息进行处理后生成了一组数据报片以及下一跳的MAC地址,并将它们一起交付给数据链路层。) 路由器上网络层的处理过程 目的计算机网络层,重组数据报片 来源: https://www.cnblogs.com/jiqing9006/archive/2013/05/30/3108588.html

TCP的长连接与短连接

被刻印的时光 ゝ 提交于 2020-03-30 04:02:14
1.TCP连接 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图所示: (1)第一次握手:建立连接,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认. (2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态. (3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。 图1.TCP三次握手建立连接 2.TCP断开连接 由于TCP连接时全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 (1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送 (2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号。 (3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A. (4

TCP/IP协议(4):网络层

家住魔仙堡 提交于 2020-03-30 02:37:55
网络层上有IP、ICMP、IGMP等协议。 1、IP地址 在OSI模型中,三层网络层负责IP地址,IP数据报帧头中的源地址和目的地址就是指IP地址。IPV4类型IP地址为32位4个字节,IPV6类型IP地址为128位16个字节,公网IP是全球唯一的。32位的IPV4 IP地址通常用4个十进制的整数来表示,每个整数对应一个字节,如"106.10.21.206",这种表示方法称为“点分十进制表示法”。 IPV4类IP地址分为五类,如下图为他们各自的地址格式和地址范围: A类IP地址第一个字节为网络地址,剩余三个字节为主机地址,默认子网掩码为255.0.0.0,可用的A类网络有126个(全0和全1的网络地址用作特殊用途,故为128-2),每个网络能容纳1亿多个主机。A类地址适用于具有大量主机(直接个人用户)而局域网络个数较少的大型网络。需要注意的是A类IP地址中以127开头的地址表示本地环回地址。 B类IP地址前两个字节为网络地址,后两个字节为主机地址,默认子网掩码为255.255.0.0,可用的B类网络有16382个,每个网络能容纳6万多个主机 。 C类IP地址前三个字节为网络地址,后一个字节为主机地址,默认子网掩码为255.255.255.0,C类网络可达209万余个,每个网络能容纳254个主机。 D类IP地址被用在多点广播(Multicast)中。 E类IP地址范为将来使用保留。

写给大忙人看的计算机网络参考模型

孤街醉人 提交于 2020-03-26 19:31:28
3 月,跳不动了?>>> @ TOC 前言 冷月最近在学习谢仁希老师的《计算机网络》,为此将自己所学的知识点总结出来和大家分享。 计算机网络这门课的知识点非常的杂乱,每一层都有很多经典的协议,这些协议处处在平时的工作中会使用。所以一定要先把计算机网络的体系结构和参考模型搞清楚,才能够使用的过程中游刃有余,在面试中也会让面试官对你基础扎实的表现加分。 计算机网络的体系结构 在具体学习参考模型每一层的功能的时候,首先要搞清楚层次设计的典范,和每一层设计的原则。 体系结构的含义 简单来说,体系结构的含义就是各层及其协议的集合。比如OSI参考模型分为七层的设计,从数据链路层到应用层中,每一层都包含大量的协议。简单来说,计算机网络的体系结构就是包括这7层和这7层中所有的协议。 计算机网络中的协议 协议就是指规则的集合。控制两个(及两个以上)对等实体进行通讯的规则的集合。我们知道计算机网络最重要的两个功能就是数据通讯和资源共享,那么现在的网络设备多种多样,怎么样才能统一他们的通讯标准呢?这就诞生了协议的制定,所以协议就是规则的集合。 计算机网络中的接口 接口是指相邻两层间交换信息的连接点。 计算机网络中的服务 在一个层次参考模型中,下层为紧邻的上层提供的功能调用。 注意:一定是下层为上层提供服务;上次为下层提供接口。 服务可以分为三类: 面向连接服务/无面向连接服务 (例如TCP和UDP)

socket通信基础内容

亡梦爱人 提交于 2020-03-26 16:55:37
对 TCP/IP、 UDP、 Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问: 1. 什么是 TCP/IP、 UDP? 2. Socket在哪里呢? 3. Socket是什么呢? 4. 你会使用它们吗? 什么是 TCP/IP 、 UDP ? TCP/IP( Transmission Control Protocol/Internet Protocol)即传输控制协议 /网间协议,是一个工业标准的协议集,它是为广域网( WANs)设计的。 UDP( User Data Protocol,用户数据报协议)是与 TCP相对应的协议。它是属于 TCP/IP协议族中的一种。 这里有一张图,表明了这些协议的关系。 图 1 TCP/IP协议族包括运输层、网络层、链路层。现在你知道 TCP/IP与 UDP的关系了吧。 Socket 在哪里呢? 在图 1中,我们没有看到 Socket的影子,那么它到底在哪里呢?还是用图来说话,一目了然。 图 2 原来 Socket在这里。 Socket 是什么呢? Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式,它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据

Python基于TCP与UDP协议实现Socket通信

左心房为你撑大大i 提交于 2020-03-26 16:55:02
TCP协议 server.py from socket import socket tcp_server = socket() tcp_server.bind(('127.0.0.1', 9000)) tcp_server.listen() conn, addr = tcp_server.accept() msg = conn.recv(1024) print(msg) conn.send(b'hello from server') conn.close() tcp_server.close() client.py from socket import socket tcp_client = socket() tcp_client.connect(('127.0.0.1', 9000)) tcp_client.send(b'hello from client') msg = tcp_client.recv(1024) print(msg) tcp_client.close() UDP协议 server.py from socket import socket, SOCK_DGRAM udp_server = socket(type=SOCK_DGRAM) udp_server.bind(('127.0.0.1', 9000)) msg, client_addr = udp

socket通信原理

China☆狼群 提交于 2020-03-26 16:50:35
1、什么是socket 我们知道进程通信的方法有管道、命名管道、信号、消息队列、共享内存、信号量,这些方法都要求通信的两个进程位于同一个主机。但是如果通信双方不在同一个主机又该如何进行通信呢?在计算机网络中我们就学过了tcp/ip协议族,其实使用tcp/ip协议族就能达到我们想要的效果,如下图(图片来源于《tcp/ip协议详解卷一》第一章1.3)           、                            图一 各协议所处层次 当然,这样做固然是可以的,但是,当我们使用不同的协议进行通信时就得使用不同的接口,还得处理不同协议的各种细节,这就增加了开发的难度,软件也不易于扩展。于是UNIX BSD就发明了socket这种东西,socket屏蔽了各个协议的通信细节,使得程序员无需关注协议本身,直接使用socket提供的接口来进行互联的不同主机间的进程的通信。这就好比操作系统给我们提供了使用底层硬件功能的系统调用,通过系统调用我们可以方便的使用磁盘(文件操作),使用内存,而无需自己去进行磁盘读写,内存管理。socket其实也是一样的东西,就是提供了tcp/ip协议的抽象,对外提供了一套接口,同过这个接口就可以统一、方便的使用tcp/ip协议的功能了。百说不如一图,看下面这个图就能明白了。                                         

Linux nfs

谁说胖子不能爱 提交于 2020-03-26 10:52:31
nfs简介 1.1 nfs特点 ●NFS (Network File System) 即网络文件系统,是FreeBSDP支持的文件系统中的一种, 它允许网络中的计算机之间通过TCP/IP网络共享资源。 ●在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 ●nfs适用于Linux与Unix之间实现文件共享,不能实现L inux与Windows间的文件共享功能。 ●nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上 ●nfs服务只能基于IP进行认证,这也是它的缺点之一 TCP/IP协议: TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。 OSI七层模型: 应用层 网络服务与最终用户的一个接口。 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 表示层 数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层) 格式有,JPEG、ASCll、DECOIC、加密格式等 会话层 建立、管理、终止会话。(在五层模型里面已经合并到了应用层) 对应主机进程,指本地主机与远程主机正在进行的会话

java网络

*爱你&永不变心* 提交于 2020-03-26 09:57:26
这个图很形象的展示了OSI的五层架构之间的关系。 OSI被称为开放式互联,是国际标准组织制定的网络模型,本来是七层,后来把表现层和会话层加到应用层里面了。 那么五层模型中的每一层具体都是干什么的呢? 在标准的网络模型中,每一层都有它不同的用处,而且每一层都只提供向上和向下的接口,而不会垮层去通信。 在应用层这里,主要是为特定的应用程序提供数据传输服务。这一层是和程序员关系最紧密的一层,其中的代表性协议就是http,它的数据单位是报文。 在传输层,为进程提供数据传输服务。这一层主要为应用层的各种各样的协议提供通用的传输层协议。这里主要就是两个最简单的协议:TCP协议和UDP协议。这里传输是端到端,连接的是端口号,也就是进程。 在网络层,为主机提供数据传输服务。这一层主要将传输层的数据报封装成分组。经典协议就是IP协议。 在数据链路层,为同一链路的主机提供数据传输服务。将网络层传下来的分组封装成帧,这里主要是MAC地址。 在物理层,最底层,传输的是二进制比特流。 我们从网络层说起,一般网络层下面的就不去了解了。 网络层是整个互联网的核心。网络层向上只提供简单灵活的、无连接的。尽最大努力交互的数据报服务。 IP数据报的格式: 版本:众所周知,ip现在有两个版本,ipv4和ipv6,ipv4的地址已经用光了,ipv6地址非常多。 首部长度:上面每一行是4个字节,除去可变部分,最少有五行