**네트워크(Network)**는 그물(Net) + 일(Work)의 합성어로 2개 이상의 컴퓨터들이 서로 통신할 수 있도록 하기 위해 필요한 모든 것들을 통칭하는 표현이다. 네트워크는 상황과 용도에 따라 다양한 구조를 가진다.
일반 사용자는 네트워크에 대한 복잡한 이해 없이 LAN 혹은 Wi-Fi에 연결하면 인터넷을 사용할 수 있다. 이는 운영체제와 프로그램들이 원활하게 네트워크를 사용할 수 있도록 해주기 때문이다.
예를 들어 우리가 브라우저(예: Chrome, Edge, Firefox, Safari)로 인터넷에 접속해 무언가를 검색하면 프로그램은 네트워크를 통해 구글 사이트에 검색 쿼리를 보내고 서버는 이를 받아 검색 정보를 처리한 후 결과를 다시 네트워크를 통해 우리에게 반환한다. 이 사이에 발생하는 네트워크 통신 과정은 운영체제와 프로그램이 적절하게 처리하여 사용자는 저수준의 네트워크 통신 방법을 알지 못하더라도 문제 없이 정보를 받아볼 수 있는 것이다.
**네트워크(Network)**는 그물(Net) + 일(Work)의 합성어로 2개 이상의 컴퓨터들이 서로 통신하기 위해 필요한 모든 것들을 통칭하는 표현이다. 네트워크는 다음과 같은 구조를 가지고 있으며, 각 계층은 자신의 바로 아래 계층과만 통신할 수 있다. 이 때 각 계층에서 사용하는 통신 규약이 있으며 이를 **프로토콜(Protocol)**이라 부른다. 아래 계층으로 내려갈 때마다 필요한 프로토콜 헤더가 추가되며 위 계층으로 올라갈 때마다 헤더가 제거된다. 현재의 많은 프로그램들은 TCP/IP 프로토콜을 사용하고 있다.
OSI 7-Layer Model

응용, 표현, 세션 계층은 애플리케이션에서 제어한다. 이 과정은 수신자가 이해할 수 있는 형태로 송신자가 데이터를 변환하는 과정이다.
**응용 계층(Application Layer)**은 네트워크 서비스를 제공하는 계층이다. 사용자가 전송하고자 하는 데이터를 해당하는 프로토콜 형식에 맞추어 변환한다.
**표현 계층(Presentation Layer)**은 송수신 과정에서 사용하는 데이터 형식을 통일하는 계층이다. 수신자와 송신자가 다른 문자 (ASCII ↔ EBCDIC)나 사진 형식 (JPG ↔ PNG)을 사용하는 경우 올바르게 데이터를 교환할 수 없기 때문에 이를 해결하기 위해 표현 계층에서 하드웨어나 운영체제에 따른 차이가 발생하지 않도록 데이터를 변환한다. 이 계층에서 암호화나 압축을 수행하기도 한다.
**세션 계층(Session Layer)**은 애플리케이션 간 소통 과정을 지원하는 계층이다. 세션(Session)은 수신자와 송신자간 연결 상태를 의미한다. 따라서 해당 계층은 송신자와 수신자의 데이터 통신을 동기화하고 오류가 발생한 경우 복구를 수행한다. TCP/IP를 사용하는 경우 TCP/IP 세션을 생성하고 제거할 책임을 진다.
**전송 계층(Transport Layer)**은 수신자와 송신자들이 올바른 정보를 송수신할 수 있도록 하며 이를 위해 포트 정보 등을 포함한 **세그먼트(Segment)**를 생성한다. 송수신한 세그먼트 정보를 바탕으로 오류검출, 복구, 흐름제어 등을 수행한다. (프로토콜의 종류에 따라 오류 검출과 복구를 보장하지 않을 수 있다.) 덕분에 애플리케이션은 데이터가 올바르게 전송될 것을 가정할 수 있다.
네트워크 계층은 라우터에서 제어한다. 이 과정은 수신자가 직접적으로 데이터를 송신자에게 송신할 수 있도록 가공하는 과정이다.
네트워크 계층(Network Layer) 혹은 **인터넷 계층(Internet Layer)**은 수신자와 송신자를 구분하기 위해 IP 주소 등을 포함한 **패킷(Packet)**을 생성한다. 이 정보를 바탕으로 라우터가 최적의 경로로 패킷을 이동시킨다.