TCP/IP와 OSI 7계층
- 네트워크 모델 : 수많은 네트워크를 통일된 형태로 연결할 방법
TCP/IP 모델
- 인터넷이 생기기전 1960년 후반부터 비국 국방성 ARPA에서 만들기 시작
- 1980년, 인터넷 원형인 아르파넷 ARPAnet의 표준으로 지정
- 당시 컴퓨터는 연구소나 대학에서 사용 → 아르파넷은 연구 목적이었음
- 이후 컴퓨터 대중화에 따라 인터넷에 그대로 사용
TCP/IP
| |
|---|---|
4계층 | 응용 |
3계층 | 전송 |
2계층 | 인터넷 |
1계층 | 네트워크 액세스 |
OSI 7계층 모델
- 네트워크가 발전하고 기능이 다양해짐 → 각 계층을 좀 더 세분화할 표준 필요
- 1984년 ISO(국제 표준화기구)에서 제안한 네트워크 모델
OSI 7계층
| |
|---|---|
7계층 | 응용
→ 프로그램은 각각 해당 프로그램끼리 통신할 수 있는 양식이 정해짐 → 이를 정희한 계층 → 프로그램을 직접 개발한다면 스스로의 양식 개발이 가능함.
|
6계층 |
|
5계층 | 세션
|
4계층 | 전송
|
3계층 | 네트워크
|
2계층 | 데이터 링크 |
1계층 | 물리 |
네트워크 패킷
- 다양한 계층으로 나뉜 프로토콜을 이용해서 데이터를 전달할 때는, 필요한 내용을 각각 용도에 맞는 프로토콜과 조합해야함 → 조합한 데이터와 프로토콜의 집합 패킷
패킷의 구조
헤더 | 페이로드 | 푸터 |
|---|---|---|
프로토콜 | 데이터 | 추가옵션 |
- 푸터는 오류를 점검하기 위한 값으로 고성. 이 값은 헤더와 페애로드는 복잡한 수식에 입력하여 계산
패킷 헤더의 구성
헤더 | 헤더 | 페이로드 | 푸터 |
|---|---|---|---|
프로토콜 | 프로토콜 | 데이터 | 추가 옵션 |
- 패킷 헤더는 프로토콜이 여러개 구성될 수 있음. 한 프로토콜 앞에 다른 프로토콜이 헤더로 추가 가능. 헤더 앞에 추가로 붙는 헤더는 기존 헤더보다 더 낮은 계층의 프로토콜.
일반적인 패킷 예시
Ethernet | TCP | IPv4 | HTTP | 데이터 |
|---|
- 인터넷을 통해 웹 서비스를 이용할 때 사용하는 가장 일반적인 형태의 패킷.
- 페이로드 부분에는 보내거나 받는 데이터
- 푸터는 없음
- 헤더에 HTTP → TCP → IPv4 → Ethernet 등 프로토콜 4개가 순서대로 추가
- HTTP: 웹 서버 - 웹 클라이언트 프로그램이 서로 통신하기 위해 사용. 주로 어떤 파일을 달라고 요청 or 해당 파일을 보낼 때 사용
- TCP: 컴퓨터에 실행중인 여러 프로그램 중 통신 대상을 찾을 때 사용
- IPv4: 인터넷에 연결된 수많은 컴퓨터 중 특정 컴퓨터를 찾아갈 때 사용
- Ethernet: IPv4를 이용해 멀리 있는 특정 컴퓨터를 찾아갈 때 여러 LAN을 거치는데, 이때 같은 LAN에 있는 다른 컴퓨터를 찾아갈 때 사용
캡슐화 → 패킷을 만들어서 보낼 때!
- 패킷은 데이티러를 보내는 쪽에서 만듦. .패킷을 만들 때는 필요에 따라 프로토콜을 여러 개 추가할 수 있음
- 이때 네트워크 모델의 높은 계층에서부터 낮은 계층의 프로토콜을 순서대로 추가하면서 만듦. 이처럼
높은 계층 → 낮은 계층프로토콜을 순서대로 조합하는 것을 캡슐화라고 함
역캡슐화
- 패킷을 전달받은 컴퓨터: 낮은 계층의 프로토콜에서 높은 프로토콜 순서로 분해하며 내용 확인 → 역캡슐화
패킷을 이용한 통신 과정
- 패킷은 보내질 때 만들어지고 받을 때 확인
- 패킷을 만드는 과정은 캡슐화, 분해하느 과정은 역캡슐화.