• 网络编程01-TCP协议(详)


    目录

    一、网络编程学习大纲

    二、回顾系统编程中进程的通信方式

    1、 管道

    2、信号

    3、IPC对象

    三、网络编程(套接字编程)

    1、特点

    2、协议

    3、历史

    四、网络应用程序设计模式

    1、C/S模式

    2、B/S模式

    3、优缺点

    五、计算机网络体系结构模型

    1、概念

    2、作用

    3、分类

    4、OSI参考模型(七层模型)

    5、TCP/IP协议模型(四层)

    六、TCP/IP网络模型通信过程

    1、两台计算机通过TCP/IP协议通讯的过程

    2、数据包封装

    3、以太网帧格式

    4、ARP数据报格式

    5、IP段格式

    6、TCP数据报格式

    七、传输层协议

    TCP协议(打电话)

    UDP协议(信)

    八、网络编程中几个重要概念

    1、socket --> 插座,套接字 插座的种类繁多,就像很多个协议一样,必须提前设置好协议。

     2、IP地址

    3、端口号(16位)

    4、字节序

    九、TCP通信

    1、通信过程

    2、客户端API

    1、建立套接字

    2、发起连接 -拨打电话

    3、发送数据-------write send

    4、关闭文件--close

    服务器端API:

    1、绑定 bind

    2、设置铃声

    3、等待客户端的连接 --accept

    4、接收数据 recv

    练习3: 修改代码,实现TCP客户端与TCP服务器互相可以收跟发。

    练习4: 写一个回射服务器,这个服务器功能就是客户端发送什么数据给服务器,服务器都会将数据回发到客户端。


    一、网络编程学习大纲

    1、计算机网络体系结构模型、网络编程专业术语(socket/IP/端口号)、通信时序图
    2、传输层协议: TCP协议/UDP协议。
    3、多进程并发服务器、多线程并发服务器
    4、网络编程IO模型:阻塞IO/非阻塞IO/多路复用/信号驱动
    5、超时接收数据方法

    二、回顾系统编程中进程的通信方式

    1、 管道

    无名管道(只能作用亲缘关系) -- pipe()
    有名管道(任意两个进程) --- mkfifo()

    2、信号

    发送信号 -- kill()
    捕捉信号 -- signal()

    3、IPC对象

    消息队列---接收特征类型的数据 -- ftok() msgget() msgsnd() msgrcv() msgctl()
    共享内存 --> 双方进程可以同时对一片内存进行读写 shmget() shmat() shmdt() shmctl()
    信号量 --> 不属于通信方式,只是一种互斥的量 semget() semop() semctl()
    特点: 只能在同一台主机上内部通信,不能跨平台。

    三、网络编程(套接字编程)

    1、特点

    既可以在同一台主机上内部通信,也可以在不同主机之间通信。
    自己的ubuntu ----自己的ubuntu
    自己的ubuntu -----同一个局域网内除了自己之外任意一台主机
    总结一下: 网络通信前提: 只要你在某个局域网内,就可以与局域网任意一台主机通信。

    2、协议

    1)概念 应用的角度出发,在不同的主机之间通信,双方都必须遵循的同一种规则。协议可理解为“规则”, 是数据传输和数据的解释的规则。
    假设,A、B双方欲传输文件。
    规定:
    第一次,传输文件名,接收方接收到文件名,应答OK给传输方;
    第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;
    第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。
    由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数 据传输规则。双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为协议。
    这种仅在A、B之间被遵守的协议称之为原始协议。当此协议被更多的人采用,不断的增加、改进、维 护、完善。最终形成一个稳定的、完整的文件传输协议,被广泛应用于各种文件传输过程中。该协议 就成为一个标准协议。最早的ftp协议就是由此衍生而来。
    TCP协议注重数据的传输。http协议着重于数据的解释。
    2)常见的协议
    传输层 常见协议有TCP /UDP协议。
    应用层 常见的协议有HTTP协议 FTP协议
    网络层 常见协议有IP协议 ICMP协议 IGMP协议
    网络接口层 常见协议有ARP协议 RARP协议
    TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
    UDP用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
    HTTP超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议
    FTP文件传输协议(File Transfer Protocol)
    IP协议是因特网互联协议 Internet Protocol
    ICMP协议是Internet控制报文协议(Internet Control Message Protocol)它是TCP/IP协议族的一
    个子协议, 用于在IP主机、路由器之间传递控制消息。
    IGMP协议是 Internet 组管理协议(Internet Group Management Protocol),是因特网协议家族中的一个组 播协议。该协议运行在主机和组播路由器之间。
    ARP协议是正向地址解析协议(Address Resolution Protocol),通过已知的IP,寻找对应主机的MAC地址。
    RARP是反向地址 转换 协议,通过MAC地址确定IP地址。

    3、历史

    ARPAnet(阿帕网):
    1)历史:
    1958年美国总统艾森豪威尔向美国国会提出建立DARPA (Defense Advanced Research Project
    Agency),即国防部高级研究计划署,简称ARPA。1968年6月DARPA提出“资源共享计算机网络”
    (Resource Sharing Computer Networks),目的在于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet。
    2)使用的协议:网络控制协议(Network Control Protoco,NCP) 3) 缺点:不能互联不同类型的计算机 和 不同类型的操作系统,同时也没有纠错功能
    Internet(因特网):
    1)由于ARPAnet网络的局限性,引入了TCP/IP协议。TCP/IP是Internet上所有网络和主机之间进行交 流的标准连接协议。通常所说的TCP/IP协议实际上包含了大量的协议和应用,且由多个独立定义的协议组合在一起,因此,更确切地说,应该称之为TCP/IP协议簇。
    TCP/IP协议: 传输控制协议/因特网互联协议
    TCP协议: 用于检测网络中传输差错
    IP协议: 负责不同的网络之间的通信
    通俗讲: TCP负责发送传输问题,一旦有问题发出信号,要求重新传输,直到数据安全到达对方为止。
    IP给每一台联网设备规定一个地址

    四、网络应用程序设计模式

    1、C/S模式

    传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。

    2、B/S模式

    浏览器(browser)/服务器(server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。

    3、优缺点

    对于C/S模式来说,其优点明显。客户端位于目标主机上可以保证性能,将数据缓存至客户端本地,从而提高数据传输效率。且,一般来说客户端和服务器程序由一个开发团队创作,所以他们之间所采用 的协议相对灵活。可以在标准协议的基础上根据需求裁剪及定制。例如,腾讯公司所采用的通信协 议,即为ftp协议的修改剪裁版。 因此,传统的网络应用程序及较大型的网络应用程序都首选C/S模式进行开发。如,知名的网络游戏魔 兽世界。3D画面,数据量庞大,使用C/S模式可以提前在本地进行大量数据的缓存处理,从而提高观感。
    C/S模式的缺点也较突出。由于客户端和服务器都需要有一个开发团队来完成开发。工作量将成倍提 升,开发周期较长。另外,从用户角度出发,需要将客户端安插至用户主机上,对用户主机的安全性构成威胁。这也是很多用户不愿使用C/S模式应用程序的重要原因。
    B/S模式相比C/S模式而言,由于它没有独立的客户端,使用标准浏览器作为客户端,其工作开发量较小。只需开发服务器端即可。另外由于其采用浏览器显示数据,因此移植性非常好,不受平台限制。如早期的偷菜游戏,在各个平台上都可以完美运行。
    B/S模式的缺点也较明显。由于使用第三方浏览器,因此网络应用支持受限。另外,没有客户端放到对方主机上,缓存数据不尽如人意,从而传输数据量受到限制。应用的观感大打折扣。第三,必须与浏览器一样,采用标准http协议进行通信,协议选择不灵活。因此在开发过程中,模式的选择由上述各自的特点决定。根据实际需求选择应用程序设计模式。

    五、计算机网络体系结构模型

    1、概念

    指的是主机内部集成的结构和每层协议的集合。每台主机本身就存在一个相同的网络体系结构。

  • 相关阅读:
    第6章 威廉.詹姆斯——意识心理学
    Vuepress建立静态网站 ,从零基础入门到完整建立第一个网页及部署全过程
    操作系统导论--受限制的直接执行
    Linux应用开发 - 线程同步的三种方法
    107. 二叉树的层序遍历 II
    如何搭建一个好看的github主页
    MFC高校职工信息管理系统
    python之requests的高级用法
    面试题——网络IO模型
    深度模型中的优化(五)、优化策略与元算法
  • 原文地址:https://blog.csdn.net/weixin_48102054/article/details/127577240