본문 바로가기
프로그래밍/TCP IP

[TCP/IP] 컴퓨터 네트워크

by yonmoyonmo 2021. 8. 14.

[ TCP/IP 쉽게, 더 쉽게 ]를 보며 메모하는 중...

1. 컴퓨터 네트워크의 종류와 역할

컴퓨터 네트워크는 여러 대의 컴퓨터를 서로 연결하여 데이터를 주고받을 수 있도록 합니다. 가장 규모가 큰 네트워크는 인터넷! 서로 다른 네트워크에 속해 있어도 인터넷을 통해 하나가 될 수 있습니다. 이메일, 파일공유, 분산 처리, WWW(World Wide Web) 등은 컴퓨터 네트워크가 있기에 가능하지요.

2. 패킷 교환 방식과 회선 교환 방식

컴퓨터 네트워크에서는 이메일이나 파일과 같은 데이터를 패킷(Packet)이라는 단위로 분할한 후 주고 받습니다. 패킷은 어디로 전달되어야 하는지 알 수 있도록 어드레스(Address)정보를 갖고 있습니다. 이러한 데이터 교환 방식을 패킷 교환 방식이라고 합니다.

회선 교환 방식이라는 것도 있습니다. 통신하려는 양측을 연결하기 위해 하나의 통신 경로를 점유한 후 통신하는 방식입니다. 아날로그 방식의 전화나 3G방식의 음성 통화 등에서 일대일 통신 형태로 사용된다고 합니다.

3. 컴퓨터 네트워크와 계층 모델

네트워크를 가능하게 하는 다양한 통신 장비와 프로그램이 있습니다. 이것들을 이해하기 쉽게 분류하고 추상화한 것을 계층 모델이라고 합니다. OSI 참조 모델 7계층과 TCP/IP 4계층 모델이 유명합니다.

어플리케이션 계층
트랜스포트 계층
인터넷 계층
네트워크 인터페이스 계층

이것은 TCP/IP 4계층

어플리케이션 계층
프레젠테이션 계층
세션 계층
트랜스포트 계층
네트워크 계층
테이터 링크 계층
물리 계층

이것은 OSI 7계층

이 책에서는 TCP/IP 4계층 모델을 좋아합니다.

- 네트워크 인터페이스 계층 : 네트워크 어댑터와 같은 하드웨어를 통해 데이터를 전달합니다. 이더넷, 무선 LAN, MAC 어드레스, PPP, FTTx, xDSL 등등과 관련되어 있습니다.

- 인터넷 계층 : 목적지의 IP 주소로 데이터를 전달합니다. IP, IPv4, IPv6, ICMP 등등과 관련되어 있습니다.

- 트랜스포트 계층 : 어플리케이션 계층과 인터넷 계층 사이에서 데이터가 올바르게 전달되도록 중계합니다. TCP, UDP 가 관련되어 있습니다.

- 어플리케이션 계층 : 웹 서비스, 이메일 등과 같은 것을 제공하는 계층이며, 네트워크의 개성은 이곳에서 표현됩니다. 사용자가 느낄 수 있는 부분은 이 계층 뿐이지요. HTTP, SMPT, FTP 등등과 관련되어 있습니다.

통신 과정에서 각 계층을 지나는 데이터는 패킷 단위로 쪼개지고 목적지 정보와 같은 부가정보가 헤더(header)의 형태로 덧붙여지게 됩니다. 

  • ➡️어플리케이션 계층에서 보내지는 데이터
  • ➡️ 트랜스포트 계층에서 패킷으로 쪼개지면서 목적지 프로그램을 식별할 수 있는 정보 덧붙임
  • ➡️ 인터넷 계층에서 수신 측의 컴퓨터를 식별할 수 있는 정보 덧붙임
  • ➡️ 네트워크 인터페이스 계층에서 하드웨어에 신호를 전달하는 데 필요한 정보를 덧붙임
  • ➡️ 전기나 광 신호로 변환되어 전송
  • ➡️ 수신측의 네트워크 인터페이스 계층에서 인터넷 계층으로, 트랜스포트 계층으로, 어플리케이션 계층으로 데이터가 전달될 때 송신 측에서 붙인 헤더와 트레일러를 보고 알맞는 프로그램으로 전달함. 

4. 네트워크 4계층의 동작 방식

어플리케이션 계층

어플리케이션 계층의 역할은 사용자가 실제로 체감할 수 있는 서비스를 제공하는 것입니다. 웹 브라우저와 웹 서버 같은 것은 어플리케이션 계층에 속하는 프로그램입니다. 이 때 주고 받는 데이터는 웹 서비스에 관련한 데이터(html, css, javascript, 이미지 파일 등등)입니다. 어플리케이션 계층의 프로그램은 데이터의 내용과 서비스를 처리하는 데에 집중하고 데이터 전송은 다른 계층에 위임합니다.

트랜스포트 계층

트랜스포트 계층은 어플리케이션 계층의 프로그램에서 전달받은 데이터를 목적지 어플리케이션 계층의 프로그램까지 전달하기 위한 작업을 합니다. 제대로 전달 받지 못할 때 재전송을 요청하는 역할도 합니다. 알맞는 어플리케이션 계층 프로그램을 찾아가기 위해 포트 번호 정보를 헤더에 붙이거나 하는 작업을 위주로 합니다.

인터넷 계층

인터넷 계층은 데이터에 어드레스 정보를 덧붙여 목적지까지 전달할 수 있도록 합니다. 라우터라는 장비가 사용됩니다. 트랜스포트 계층에서는 포트 정보를 헤더에 추가했지요? 인터넷 계층에서는 IP 주소 정보로 목적지를 설정하는 작업을 합니다.

네트워크 인터페이스 계층

네트워크 인터페이스 계층은 유선 LAN 어댑터나 무선 LAN 어댑터가 처리할 수 있는 형태로 데이터를 변환하고 이 데이터를 목적지까지 전달하는 것입니다. 인터넷 계층에서는 전달 경로를 어떻게 하느냐에 대한 것에 초점이 맞춰져 있다면, 네트워크 인터페이스 계층은 물리적으로 인접하여 연결된 장비까지 어떻게 하면 데이터를 잘 전달할까에 초점을 맞추고 있습니다. 어플리케이션 계층에서부터 url, port, IP 정보를 줄줄이 덧붙여 네트워크 인터페이스 계층으로 전달하면 네트워크 인터페이스 계층에서는 이더넷 헤더로 목적지 장비까지 전달하는 데에 필요한 정보를 덧붙입니다. 목적지에서는 네트워크 인터페이스 계층부터 차례로 위로 올라가 어플리케이션 계층까지 데이터가 전달되며, 이 때 각 계층에서 덧붙인 정보를 사용하고 난 뒤에 떼어냅니다.

5. 통신 규약과 프로토콜(protocol)

통신에 있어서 연결될 두 컴퓨터가 서로 이해할 수 있는 수행절차는 필수입니다. 이것이 바로 프로토콜입니다. 어떤 차례로 무엇을 보낼 것인지에 대한 규칙과 전송이 실패했을 때 어떻게 할 것인지 등에 대한 것을 정의합니다. 프로토콜은 프로그램이나 장비 처럼 형태를 가지고 있는 것은 아닙니다. 일종의 약속이기 때문이지요. 예로 HTTP라는 프로토콜에 따라 동작하는 브라우저, TCP/IP라는 프로토콜에 따라 동작하는 운영체제의 네트워크 프로그램, 이더넷이라는 프로토콜에 따라 동작하는 LAN케이블과 네트워크 허브, 네트쿼크 어댑터용 디바이스 드라이버 등등이 있습니다.

네트워크 프로토콜들은 소속된 계층에 맞게 그 역할이 전문화되고 세분화되어 있습니다. 하나의 통신을 전체적으로 성공시키기 위해 이 각 계층의 프로토콜이 잘 조합되어 사용됩니다.

TCP/IP는 하나의 프로토콜을 지칭하는 말이 아니라 인터넷에서 사용되는 각종 표준 프로토콜을 한데 모아 이르는 말이라고 합니다. TCP/IP라고 부르는 이유는 TCP와 IP가 그 중 제일 대표격이라 그렇다고 합니다. 그래서 TCP/IP를 인터넷 프로토콜의 집합의 의미로 구분해 표현할 때는 TCP/IP Protocol Suite라고 부르거나 Internet Protocol Suite라고 부른다고 합니다.

아래 표는 유명한 프로토콜을 계층 별로 정리한 것입니다.

계층 프로토콜 이름
어플리케이션 계층 HTTP/HTTPS, POP3, SMTP, FTP, Telnet, SSH, SMB, DHCP, DNS, SSL
트랜스포트 계층 TCP, UDP
인터넷 계층 IP, ICMP, IPsec
네트워크 인터페이스 계층 ARP, 이더넷, PPP

 

6. 인터넷의 영향

옛날에는 OS벤더마다 OS의존적인 네트워크 프로토콜을 사용했기 때문에 OS가 다른 경우 통신할 수 없었다고 합니다. PC통신 서비스 형태의 네트워크의 경우에는 PC통신 서비스에 가입한 사용자끼리만 네트워크 연결을 할 수 있었고, 다른 PC통신끼리는 통신할 수 없었다고 합니다. 하지만 이제 인터넷이 있지요? 그래서 행복합니다...

인터넷은 TCP/IP라는 프로토콜 집합을 사용해서 전 세계의 네트워크들을 연결하고 통합한 세계 최대의 네트워크입니다. 인터넷에 연결되는 각 네트워크에는 각각의 네트워크 관리자가 있지만, 인터넷 자체를 중앙에서 관리하는 곳은 없습니다. 요즘은 거의 모든 컴퓨터 네트워크가 TCP/IP를 기반으로 네트워크에 연결되어 있습니다. 통신할 때 프로토콜만 맞춘다면 운영체제나 인터넷 제공 사업자가 다르더라도 통신할 수 있게 된 것입니다!

동일한 프로토콜을 이용해야 한다는 점이 인터넷의 제약조건이지요? 그래서 프로토콜의 표준을 관리하고 제약하는 것이 컴퓨터 네트워크에서 굉장히 중요해졌습니다. 그래서 국제적인 표준 단체가 있습니다.

IETF(Internet Engineering Task Force) : 인터넷에 관련한 것들을 관리
IEEE(Institue of Electrical and Electronics Engineering) : 이더넷이나 무선 LAN 등과 같은 네트워크 하드웨어에 관한 것을 관리
W3C(World Wide Web Consortium) : 웹에 관련된 것을 관리

많이 사용되는 프로토콜이나 각종 규격 등등은 대부분 특정 사업체나 조직에서 만든 것들이 표준으로 자리 잡은 것들이 많습니다. 인터넷도 미국 국방성에서 군용 네트워크를 연구하는 과정에서 생겨났지요? 그러나 사업체나 조직에서 특정 프로토콜이나 규격을 독점하고 폐쇄적으로 사용하기보다는 공개하고 표준화해서 널리 사용되게 하는 것이 더 유익하다는 인식이 점점 자리를 잡게 됩니다. 어떤 조직이나 회사가 개발한 규격이 국제 표준화 단체에 제안되기도 하고 처음부터 표준화를 목적으로 규격을 검토하기도 합니다.


댓글