Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2장: 네트워크 통신을 위한 약속 #277

Closed
Tracked by #268
fkdl0048 opened this issue Aug 23, 2024 · 0 comments
Closed
Tracked by #268

2장: 네트워크 통신을 위한 약속 #277

fkdl0048 opened this issue Aug 23, 2024 · 0 comments

Comments

@fkdl0048
Copy link
Owner

fkdl0048 commented Aug 23, 2024

2장: 네트워크 기본 규칙

이 장에서는 네트워크 통신의 기본 규칙인 프로토콜에 대해 설명합니다.

  • 이 장의 목표
    • 프로토콜을 이해한다.
    • OSI 모델과 TCP/IP 모델을 이해한다.
    • 캡슐화와 역캡슐화를 이해한다.

네트워크의 규칙

프로토콜이란?

프로토콜이란 네트워크에서 문제없이 통신하기 위한 규칙이다. 프로토콜은 데이터를 주고받는 양식과 순서를 정의한다. 프로토콜은 네트워크에서 데이터를 주고받을 때 어떤 순서로 데이터를 보내고 받을지를 정의한다.

OSI 모델과 TCP/IP 모델

OSI 모델이란?

과거에는 같은 회사 컴퓨터끼리만 통신이 가능하던 시절이 있었다. 케이블도 제각기 달라서 서로 연결할 수 없었다. 곹옹으로 사용할 수 있는 표준 규격을 정해야 했기에 **ISO(국제 표준화 기구)**에서 OSI(Open Systems Interconnection) 모델이라는 표준을 제정했다.

OSI 모델은 네트워크 기술의 기본이 되는 모델로 7개의 계층으로 구성되어 있다. 7개 계층이 바로 OSI 모델이다. 계층이라는 용어 대신 레이어라는 용어를 사용하기도 한다.

계층 이름 설명
7계층 응용 계층(Application Layer, 애플리케이션 계층) 사용자와 가장 가까운 계층으로, 사용자 인터페이스를 제공한다. (이메일 & 파일 전송 웹 사이트 조회 등 애플리케이션 서비스를 제공한다.)
6계층 표현 계층(Presentation Layer, 프레젠테이션 계층) 데이터를 표현하는 방법을 정의한다. (데이터 압축, 암호화, 문자 코드 등을 정의(변환)한다.)
5계층 세션 계층(Session Layer, 세션 계층) 통신 세션을 구성하는 방법을 정의한다. (통신 세션을 구성하고 유지하는 방법을 정의한다.)
4계층 전송 계층(Transport Layer, 전송 계층) 신뢰할 수 있는 통신을 구현한다. (데이터 전송의 신뢰성을 보장하고 흐름 제어 및 오류 제어를 담당한다.)
3계층 네트워크 계층(Network Layer, 네트워크 계층) 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소를 결정한다. (데이터를 목적지까지 전달하는 경로를 선택하고 제어한다.)
2계층 데이터 링크 계층(Data Link Layer, 데이터 링크 계층) 네트워크 기기 간의 데이터 전송 및 물리 주소를 결정한다.
1계층 물리 계층(Physical Layer, 물리 계층) 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어한다.

이와 같은 계층은 실제로 데이터 전송하는 쪽에서는 상위 계층에서 하위 계층으로 데이터를 전달하고, 데이터를 받는 쪽에서는 하위 계층에서 상위 계층으로 데이터를 전달한다.

각 계층은 독립적으로 데이터가 전달되는 동안 다른 계층의 영향을 받지 않는다.

TCP/IP 모델이란?

OSI 모델은 네트워크 통신의 기본이 되는 모델이지만, 실제로 네트워크 통신에 많이 사용되는 모델은 TCP/IP 모델이다. TCP/IP 모델은 OSI 모델과 비슷한 4계층으로 구성되어 있다.

즉, OSI 모델의 7계층을 4계층으로 합쳐서 사용하는 것이다.

계층 OSI 모델 TCP/IP 모델
4계층 응용 계층, 표현 계층, 세션 계층 응용 계층
3계층 전송 계층 전송 계층
2계층 네트워크 계층 인터넷 계층
1계층 물리 계층 네트워크 접속 계층

캡슐화와 역캡슐화

데이터를 보내려면 데이터의 앞부분에 전송하는 데 필요한 정보를 붙여서 다음 계층으로 보내야 한다. 이 정보를 헤더라고 하는데 헤더에는 데이터를 전달받을 상대방에 대한 정보도 포함되어 있다.

이렇게 데이터에 헤더를 붙여 다음 계층으로 보내는 것을 캡슐화라고 한다. 캡슐화된 데이터를 받은 상대방은 헤더를 제거하고 데이터를 받는다. 이를 역캡슐화라고 한다.

예를들어 전송 계층에서 신뢰할 수 있는 통신이 이루어지도록 응용 계층에서 만들어진 데이터에 헤더를 붙인다. 전송 계층에서도 헤더를 붙이고 이후 데이터에 물리적 통신 채널을 연결하기 위해 데이터 링크 계층에서 헤더와 트레일러를 붙인다.

이렇게 데이터 링크 계층에서 만들어진 데이터는 최종적으로 물리 계층에서 전기 신호로 변환되어 상대방에게 전달된다. 수신측은 반대로 물리 계층에서 받은 데이터를 데이터 링크 계층에서 헤더와 트레일러를 제거하고 전송 계층으로 전달한다.

용어 정리

  • 프로토콜(Protocol): 컴퓨터 간에 정보를 주고받을 때의 통신 방법에 대한 규칙이나 표준이다.
  • OSI(Open Systems Interconnection) 모델: 국제표준화기구(ISO)에서 정의한 국제 통신 표준 규약이다. 네트워크의 기본 구조를 일곱 개 계층으로 나눠서 표준화한 통신 규약으로 현재 다른 통신 규약의 기반이 되고 있다.
  • TCP/IP 모델(Transmission Control Protocol/Internet Protocol): OSI 모델 7계층의 네트워크에서 데이터를 전송하는 과정을 네 개 계층으로 단순화시켜 사용하는 모델이다. 인터넷 모델이라고도 한다.
  • 캡슐화/역캡슐화(Encapsulation/Decapsulation): 캡슐화는 컴퓨터 통신에서 상위 계층의 통신 프로토콜 정보를 데이터에 추가하여 하위 계층으로 전송하는 기술이다. 반대로 역캡슐화는 하위 계층에서 상위 계층으로 전달되는 데이터에서 프로토콜 정보를 제거하는 기술이다.
  • 헤더(Header): 저장되가나 전송되는 데이터의 맨 앞에 위치하는 추가적인 정보 데이터다. 데이터의 내용이나 성격을 식별 또는 제어하는 데 사용한다.
  • 트레일러(Trailer): 데이터의 맨 뒤에 위치하는 추가적인 정보 데이터다. 데이터의 끝을 알리거나 오류를 검출하는 데 사용한다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

1 participant