Jump to content

Computer network programming: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverted 1 edit by 2405:204:A59F:A734:F741:1325:559E:EF43 (talk) to last revision by DemocraticLuntz (TW)
 
(18 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Short description|Writing computer programs with networking capability}}
{{one source|date=June 2013}}
{{one source|date=June 2013}}


{{For|similar terms referring to the hardware technologies committed to computer network programming |Computer network}}
'''Computer network programming''' involves writing [[computer programs]] that enable [[process (computing)|processes]] to communicate with each other across a [[computer network]].

'''Computer network programming''' involves writing [[computer programs]] that enable [[process (computing)|processes]] to communicate with each other across a [[computer network]].<ref>{{cite book| url=http://people.scs.carleton.ca/~lanthier/teaching/COMP1406/Notes/COMP1406_Ch12_NetworkProgramming.pdf | archive-url=https://web.archive.org/web/20200305163115/http://people.scs.carleton.ca/~lanthier/teaching/COMP1406/Notes/COMP1406_Ch12_NetworkProgramming.pdf | url-status=dead | archive-date=2020-03-05 | chapter=Chapter 12 - Network Programming | date=2017 | quote=Network Programming involves writing programs that communicate with other programs across a computer network. | title=COMP1406 }}</ref>


== Connection-oriented and connectionless communications ==
== Connection-oriented and connectionless communications ==


Very generally, most of communications can be divided into [[Connection-oriented_communication|connection-oriented]], and [[Connectionless_communication|connectionless]]. Whether a communication is a connection-oriented, or connectionless, is defined by the [[Communications_protocol|communication protocol]], and not by {{nowr|[[application programming interface]] (API)}}. Examples of the connection-oriented protocols include {{nowr|[[Transmission Control Protocol]] (TCP)}} and {{nowr|[[Sequenced Packet Exchange]] (SPX)}}, and examples of connectionless protocols include {{nowr|[[User Datagram Protocol]] (UDP)}}, "raw IP", and {{nowr|[[Internetwork Packet Exchange]] (IPX)}}.
Very generally, most of communications can be divided into [[Connection-oriented_communication|connection-oriented]], and [[Connectionless_communication|connectionless]]. Whether a communication is connection-oriented or connectionless, is defined by the [[Communications_protocol|communication protocol]], and not by {{nowr|[[application programming interface]] (API)}}. Examples of the connection-oriented protocols include {{nowr|[[Transmission Control Protocol]] (TCP)}} and {{nowr|[[Sequenced Packet Exchange]] (SPX)}}, and examples of connectionless protocols include {{nowr|[[User Datagram Protocol]] (UDP)}}, "raw IP", and {{nowr|[[Internetwork Packet Exchange]] (IPX)}}.


== Clients and Servers ==
== Clients and servers ==
{{main|client–server model}}
{{main|client–server model}}


Line 39: Line 42:
| Various
| Various
|}
|}

== See also ==

* [[Software-defined networking]]
*[[Infrastructure as code]]
* [[Site reliability engineering]]
* [[DevOps]]


== References ==
== References ==
* W. Richard Stevens: UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, {{ISBN|0-13-490012-X}}
* W. Richard Stevens: '''[[UNIX Network Programming]]''', Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, {{ISBN|0-13-490012-X}}

{{reflist}}


[[Category:Computer programming]]
[[Category:Computer programming]]

Latest revision as of 10:38, 19 August 2024

Computer network programming involves writing computer programs that enable processes to communicate with each other across a computer network.[1]

Connection-oriented and connectionless communications

[edit]

Very generally, most of communications can be divided into connection-oriented, and connectionless. Whether a communication is connection-oriented or connectionless, is defined by the communication protocol, and not by application programming interface (API). Examples of the connection-oriented protocols include Transmission Control Protocol (TCP) and Sequenced Packet Exchange (SPX), and examples of connectionless protocols include User Datagram Protocol (UDP), "raw IP", and Internetwork Packet Exchange (IPX).

Clients and servers

[edit]

For connection-oriented communications, communication parties usually have different roles. One party is usually waiting for incoming connections; this party is usually referred to as "server". Another party is the one which initiates connection; this party is usually referred to as "client".

For connectionless communications, one party ("server") is usually waiting for an incoming packet, and another party ("client") is usually understood as the one which sends an unsolicited packet to "server".

[edit]

Network programming traditionally covers different layers of OSI/ISO model (most of application-level programming belongs to L4 and up). The table below contains some examples of popular protocols belonging to different OSI/ISO layers, and popular APIs for them.

OSI/ISO Layer Protocol API
L3 (network) IP Raw socket
L4 (transport) TCP, UDP, SCTP Berkeley Sockets
L5 (session) TLS OpenSSL
L7 (application) HTTP Various

See also

[edit]

References

[edit]
  • W. Richard Stevens: UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X
  1. ^ "Chapter 12 - Network Programming". COMP1406 (PDF). 2017. Archived from the original (PDF) on 2020-03-05. Network Programming involves writing programs that communicate with other programs across a computer network.