Network | 네트워크
컴퓨터 네트워크
컴퓨터 네트워크의 종류
컴퓨터와 컴퓨터를 연결하는 컴퓨터 네트워크
컴퓨터 네트워크는 여러 대의 컴퓨터를 서로 연결하여 서로 데이터를 주고받을 수 있도록 망이 사전에 구축된 것을 말한다.
가정이나 사무실처럼 실내에서 비교적 근거리에 위치한 컴퓨터들이 연결된 것을 LAN이라고 하고 집 밖이나 회사 건문 밖처럼 비교적 먼 거리에 위치한 컴퓨터들과 연결된 것을 WAN이라고 한다.
전 세계의 컴퓨터를 연결하는 인터넷
여러 네트워크 중에서도 가장 규모가 큰 네트워크가 바로 인터넷이다.
휴대전화나 스마트폰을 연결하는 모바일 네트워크
여러 네트워크 중에서도 휴대전화나 스마트폰을 연결하기 위해 무선 기술을 활용한 것을 무선 네트워크 혹은 모바일 네트워크라고 한다.
컴퓨터 네트워크의 역할
개인적인 용도부터 비지니스 업무까지, 간단한 커뮤니케이션부터 파일이나 주변 기기의 공유까지 컴퓨터 네트워크는 다양한 목적으로 폭넓게 활용되고 있다.
서버와 클라이언트
서버와 클라이언트의 정의
네트워크에 연결된 컴퓨터들 중 서버스를 제공하는 쪽을 서버라고 부르고 그 서비스를 받는 쪽을 클라이언트라고 부른다.
피어 투 피어
네트워크에 연결된 두 대의 컴퓨터가 클라이언트와 서버의 역할을 동시에 할수 있어서 서로에게 서버스를 주거나 받을 수 있는 통신 방식을 피어 투 피어(P2P,Peer to Peer) 방식이라고 한다.
패킷 교환 방식
패킷 교환 방식이란?
컴퓨터 네트워크에서는 이메일이나 파일과 같은 데이터를 패킷이라는 작은 단위로 분할한 후 주고 받는다.
패킷은 자신이 어디로 전달되어야 하는지 알 수 있도록 어드레스 정보를 가지고 있다.
회선 교환 방식과 패킷 교환 방식
아날로그 방식의 유선 전화나 3G 방식의 휴대전화는 회선 교환 방식을 사용한다.
회선 교환 방식은 통신하려는 양측을 연결하기 위해 하나의 통신 경로를 점유한 후 통신하는 방식이라서 기본적으로 일대일 통신만 할 수 있다.
패킷 교환 방식은 주고받을 데이터를 작게 쪼갠 후 다른 데이터의 조각들과 통신 경로를 공유하며 전송하는 방식이라서 여러 상대와 통신할 때 효과적이다.
컴퓨터 네트워크와 계층 모델
컴퓨터 네트워크를 구성하는 계층
컴퓨터 네트워크에서는 다양한 통신 장비와 프로그램이 어울려 통신을 가능하게 한다.
이렇게 통신에 참여하는 여러 장비나 프로그램은 각각 맡은 역할이 있는데, 이 역할들을 이해하기 쉽게 분류하고 추상화한것을 계층 모델이라고 한다.
계층 | 역할 |
---|---|
애플리케이션 계층 | 웹 서비스, 이메일과 같은 서버시를 사용자에게 제공한다. |
트랜스포트 계층 | 애플리케이션 계층과 인터넷 계층 사이에서 데이터가 올바르게 전달되도록 중계한다. |
인터넷 계층 | 목적지의 IP 어드레스로 데이터를 전달한다. |
네트워크 인터페이스 계층 | 네트워크 어댑터와 같은 하드웨어를 통해 데이터를 전달한다. |
각 계층을 통과하는 데이터의 형태
통신 과정에서 각 계층을 지나는 데이터는 패킷 단위로 작게 쪼개지고 목적지 정보와 같은 부가 정보가 헤더의 형태로 덧붙여지게 된다.
송신측
계층 | 역할 |
---|---|
애플리케이션 계층 | 상대방에게 보낼 데이터 |
트랜스포트 계층 | 전송하기 적합하 크기로 작게 쪼갠 후 목적지의 프로그램을 식별할 수 있는 정보를 덧붙인다 |
인터넷 계층 | 수신 측의 컴퓨터를 식별할 수 있는 정보를 덧붙인다 |
네트워크 인터페이스 계층 | 하드웨어에 신호를 전달하는 데 필요한 정보를 덧붙인다 |
수신측
계층 | 역할 |
---|---|
네트워크 인터페이스 계층 | 헤더나 트레일러를 떼어내고 인터넷 계층으로 전달한다 |
인터넷 계층 | 자신이 수신해야 하는 데이터라고 판단되면 이 데이터를 트랜스포트 계층으로 전달한다 |
트랜스포트 계층 | 모든 데이터가 수신된 것을 확인하고 데이터들이 결합되면 목적지의 프로그램에게 전달한다 |
애플리케이션 계층 | 수신된 데이터 |
4개 계층의 동작 방식
애플리케이션 계층
애플리케이션 계층의 역할은 사용자가 실제로 체감할 수 있는 서비스를 제공하는 것이다.
웹 브라우저와 웹 서버는 애플리케이션 계층에 속하는 프로그램이고 이때 주고 받은 데이터는 페이지를 요청하는 URL과 그 응답 결과로 전달되는 웹 페이지 데이터다.
보고 싶은 웹페이지의 URL을 요청한다.
웹 페이지의 HTML 데이터를 응답한다.
응답으로 받은 HTML 데이터를 해석하여 웹 페이지 형태로 표시한다.
트랜스포트 계층
트랜스포트 계층의 역할은 애플리케이션 계층의 프로그램으로 전달받은 데이터를 목적지 애플리케이션 계층의 프로그램까지 전달하는 것이다.
데이터가 제대로 전달되지 않았을때 재전송 하는 것도 이 계층이 하는 일이다.
어떤 프로그램들이 서로 통신을 해야 하는지에 대한 정보를 헤더에 기록한다.
포트 번호를 확인하고 웹 서버에 데이터를 전달한다.
요청에 보낸 프로그램을 목적지로 설정하여 응답 데이터를 전달한다.
인터넷 계층
인터넷 계층의 역할은 데이터에 어드레스 정보를 덧붙여 목적지까지 무사히 전달하는 것이다.
인터넷 통신에서는 목적지 컴퓨터까지 도달할 수 있는 경로를 찾아야 하는데 이때 라우터라는 장비가 사용된다.
통신하는 컴퓨터들을 식별할 수 있도록 어드레스 정보를 덧붙인다.
자신이 수신해야 하는 데이터라고 판단되면 트랜스포트 계층에 데이터를 전달한다.
클라이언트 PC 목적지로 설정하야 데이터를 전달한다.
자신이 수신해야 하는 데이터라고 판단되면 트랜스포트 계층에 데이터를 전달한다.
네트워크 인터페이스 계층
네트워크 인터페이스 계층의 역할은 유선 LAN 어댑터나 무선 LAN 어댑터가 처리할 수 있는 형태로 데이터를 변환하고 이 데이터를 목적지까지 전달하는 것이다.
주변 장치까지 데이터를 전달하는 데 필요한 정보를 덧붙인다.
자신이 수신해야 하는 데이터라고 판단되면 인터넷 계층에 데이터를 전달한다.
주변 장치까지 데이터를 전달하는 데 필요한 정보를 덧붙인다.
자신이 수신해야 하는 데이터라고 판단되면 인터넷 계층에 데이터를 전달한다.
통신 규약과 프로토콜
프로토콜이란?
사람들이 만나면 먼저 명함을 교환하고 요구사항을 전달한 후, 이를 충족시키기 위한 예산과 납기를 상의하는 것처럼 협의 과정에서 일련의 관례와 같은 절차가 있따.
이때 지켜야 할 절차나 규약을 프로토콜이라고 한다.
프로토콜은 눈에 보이지 않는다.
프로토콜은 통신 과정의 절차나 규칙이 기술된 사양서에 불과하다.
다만 프로토콜에 맞게 동작하도록 만들어진 프로그램이나 통신 장비 그리고 데이터 포맷 등이 존재하고, 이들이 서로 약속된 방식으로 잘 동작해 줄 떄 원할한 통신이 가능해진다.
계층 | 역할 |
---|---|
애플리케이션 계층 | HTTP라는 프로토콜에 따라 동작하도록 만들어진 웹 브라우저 |
트랜스포트 계층/인터넷 계층 | TCP/IP라는 프로토콜에 따라 동작하도록 만들어진 OS 내장 통신 프로그램 |
네트워크 인터페이스 계층 | 이더넷이라는 프로토콜에 따라 동작하도록 만들어진 네트워크 어탭터용 디바이스 드라이버 |
프로토콜 조합하기
네트워크 프로토콜들은 소속된 계층에 맞게 그 역할이 전문화되고 세분화되어 있다.
그래서 하나의 통신을 전체적으로 성공시키기 위해서는 이들 각 계층의 프로토콜을 잘 조합하여 사용해야 한다.
웹 페이지를 보는 경우
계층 | 사용 프로토콜 |
---|---|
애플리케이션 계층 | HTTP - 웹 페이지를 보기 위한 프로토콜 |
트랜스포트 계층 | TCP - 데이터를 확실하게 전달하기 위한 프로토콜 |
인터넷 계층 | IP - 일반적인 통신에 사용하는 프로토콜 |
네트워크 인터페이스 계층 | 이더넷 - 유선 LAN으로 데이터를 전송하기 위한 규칙 |
인터넷으로 전화를 거는 경우
계층 | 사용 프로토콜 |
---|---|
애플리케이션 계층 | VoIP 프로토콜 - 전화 애플리케이션을 위한 프로토콜 |
트랜스포트 계층 | UDP - 확실한 데이터 전달은 보장하기 어렵지만 고속 전송이 가능한 프로토콜 |
인터넷 계층 | IP - 일반적인 통신에 사용하는 프로토콜 |
네트워크 인터페이스 계층 | IEEE802.11 - 무선 LAN으로 데이터를 전송하기 위한 규격 |
인터넷의 영향
과거의 컴퓨터 네트워크는 OS 벤더가 만든 OS 의존적인 네트워크 프로토콜들을 사용했었다.
오늘날의 컴퓨터 네트워크는 인터넷에서 범용적으로 사용되는 TCP/IP 프로토콜을 사용한다.
인터넷의 특징
인터넷은 TCP/IP라는 프로토콜 집합을 사용해서 전 세계의 네트워크들을 연결하고 통합한 세계 최대의 네트워크다.
인터넷에 연결되는 각각의 네트워크 관리자가 있지만 인터넷 자체를 중앙에서 관리하는 곳은 존재하지 않는다.
인터넷의 영향을 받기 전인 과거의 컴퓨터 네트워크
인터넷의 영향을 받기 전의 컴퓨터 네트워크에서는 컴퓨터의 OS별로 독자적인 네트워크 프로토콜들이 있었다.
그래서 서로 다른 OS를 사용하는 컴퓨터끼리는 프로토콜이 맞지 않아 통신할 수 없었다.
인터넷의 영향을 받은 후인 오늘날의 컴퓨터 네트워크
오늘날은 개인용 컴퓨터가 연결되는 LAN을 시작으로 거의 모든 컴퓨터 네트워크가 TCP/IP를 기반으로 연결되고 있다.