计算机网络知识复习(端口号 TCP UDP)

来源:互联网 发布:windows mobile软件 编辑:程序博客网 时间:2024/06/16 15:27

网络的体系结构:应用层、运输层、网络层、链路层、物理层。

web服务区端口号:80 邮件服务进程(SMTP):25
TCP:1 FTP协议:21 talnet端口:23
pop3端口:110 DNS服务端口:53

TCP的服务模型是面向连接和可靠数据传输服务:TCP存在一个握手过程提示客户和服务器,使他们为大量分组的到来最好准备。之后,TCP连接就在两个进程的套接字之间建立。连接的双方可以同时在次链接上进行收发。应用程序结束发送报文时,必须拆除该连接。TCP可以无差错,按照是党属虚交付所有数据所以是可靠的数据传送服务。

UDP是一种不提供不必要服务的轻量运输协议,它仅提供最小服务。UDP是无连接的,因此两个进程通信前无握手过程,当发送完,UDP协议不保证该报文一定接收到,二期就算到了还可能是乱序到的。

电子邮件(SMTP)(TCP),远程终端访问(Telent)(TCP),web(HTTP)(TCP),文件传输(FTP)(TCP),流式多媒体(HTTP)(TCP),因特网电话(SIP)(UDP或TCP)

HTTP协议分持续连接(所有响应及请求经相同TCP连接发送)和非持续连接(每个响应/请求经一个单独的TCP连接发送)。

HTTP的客户进程在端口号80发起一个到服务器的TCP连接。

当使用GET方法时,HTTP协议的实体体为空,而使用POST方法时才使用该实体体。当用户提交表单时,HTTP客户常常使用POST方法。GET方法不完全,会吧表单内提交的内容显示到URL里。

HTTP响应报文: 常见状态码和相关短语:
200) OK :请求成功,信息再返回的响应报文中。
301)Moved Permanently : 请求的对象已经被永久转移了,新的URL定义在响应报文的Location:首部行中。客户软件自动获取新的URL。
400)Bad Request : 一个通用的差错代码,只是该请求不能被服务器理解。
404)NotFound:被请求的文档不在服务器上。
505)HTTP Version Not Supported:服务器不支持请求报文使用的HTTP协议版本。

创建套接字(IP号,端口号)—–socket(IP,Port);

UDP也适合很多应用的,因为:
1)关于何时,发送什么数据的应用层控制的更精细:无拥塞控制,无确认号,序列号,想发就发。
2)无需连接建立:TCP有三次握手,UDP没有,无时延,直接干。
3)无连接状态:TCP需要在端系统中维护连接状态,包括接受和发送缓存、拥塞控制参数以及序号和确认号的参数。
4)分组首部开销小:每个TCP报文段都有20个字节的首部开销,而UDP只有8字节。
这是构造可靠传输协议的模型
这是构造可靠传输协议的模型

这是拥有GBN(回退N步)的两张模型图:
这里写图片描述
这里写图片描述

客户TCP和服务器TCP建立TCP连接的方式:
TCP三次握手详解:
1)第一步:客户端的TCP首先向服务器短的TCP发送以一个特殊的TCP报文段。该报文段不包含应用层数据。但是在报文段的首部中的一个标志位(即SYN比特)被置为1。因此,这个特殊报文段被称为SYN报文段。另外,客户会随机选择一个初始序号(client_isn),并将此编号放置于该其实的TCP SYN报文段的序号字段中。该报文段会被封装在一个IP数据报中,并发送给服务器。适当的随机化client_isn可以避免某些安全性攻击。
2)第二步:一旦包含TCP SYN报文段的IP数据报到达服务器主机(假定它的确到达!),服务器会从该数据报中提取出 TCP SYN报文段,为该TCP连接分配TCP缓存和变量,并向该客户TCP发送允许连接的报文段。这个允许连接的报文段也不包含应用层数据。但是,在报文段的首部却包含三个重要的信息。首先SYN比特被设置为1。其次,该TCP报文段的确认号字段被设置为client_isn+1。最后,服务器选择自己的初始序号(server_isn)并将其放置到TCP报文段首部的序号字段中。这个允许连接的报文段时间上表明了:”我收到了你发起建立连接的SYN分组,该分组带有初始序号client_isn。我同意建立该连接我自己的初始序号是server_isn“该循序连接的报文段有时被称为SYNACK报文段。
3)第三步:在收到SYNACK报文段后,客户也要给该连接分配缓存和变量。客户主机则向服务器发送另外一个报文段:这最后一个报文段对服务器的允许连接的报文段进行了确认(该客户通过将值server_isn+1放置到TCP报文段受不得确认字段来完成此项工作)。因为连接已经建立了,所以该SYN比特被设置为0.该三立握手的第三个阶段可以在报文段负载中携带客户到服务器的数据。
一旦完成这三个步骤,客户和服务器主机就可以相互发送包括数据的报文段了。在以后的每一个报文段中,SYN比特都将被设置为0。

原创粉丝点击