- 두 개의 호스트가 각각 7계층으로 구성된 모듈을 수행
- 송신 호스트의 응용 계층에서 하위계층으로 순차적으로 전달되어 물리계층으로 도달
- 물리계층을 통해 수신 호스트로 데이터가 이동하고, 순차적으로 상위 계층으로 전달되어 응용계층까지 도달
- 송신 측에서 하위 계층으로 이동할 때 각 계층 프로토콜에서 정의한 헤더 추가
- 수신 측에서 상위 계층으로 이동할 때 순차적으로 헤더 정보를 처리하고 제거
용어 정의
- 계층 n 프로토콜
- 계층 n 모듈끼리 사용하는 통신 규칙
- 프로토콜의 역할
- 프로토콜에서 정의된 기능을 수행하면서 필요한 정보를 서로 교환 (예 - 주소의 표현, 오류 제어, 흐름 제어 등)
- 동료 프로세스
- 동일 계층에 위치한 통신 양단 프로세스
- 송신 호스트의 응용 계층과 수신 호스트의 응용 계층이 ‘동료(peer)’ 관계
- 인터페이스
- 상하위 계층 사이의 접속 방법
- 서비스
- 상위 계층이 하위 계층을 사용하는 방법
중계 기능
- 중계 노드
- 주소를 기반으로 다음에 어떤 노드에 넘겨줄 것인가 판단해 전달하는 역할 (=라우팅)
- 여러 개 존재할 수 있음
- 7계층 중 네트워크 계층까지의 기능만 수행
- 라우팅
- 경로 배정 기능
- 헤더 정보를 해석하여 적절한 경로로 전달
- 다음 라우터로 보내기 전에 헤더 정보를 적절히 수정하여 전송
계층별 기능
- 물리 계층
- 전송 매체의 물리적(기계적, 전기적) 인터페이스에 관한 사항 기술
- 하드웨어로 구현
- 데이터의 전송 속도, 클럭(clock) 동기화, 물리적 연결 형태 등
- 데이터 링크 계층
- 물리계층을 통해 전송하는 데이터의 물리적 전송 오류를 해결하고 흐름 제어 제공
- 두 개의 노드가 1:1로 직접 연결된 환경에서 데이터 전송 기능 지원
- 프레임
- 계층마다 데이터를 지칭하는 용어가 다른데, 데이터 링크 계층에서는 데이터를 프레임이라 칭함
- 헤더에 포함되는 정보
- 헤더에 포함되는 정보
- MAC 주소
- 오류 제어에 관련된 추가 정보(데이터에 이상은 없는지, 데이터가 사라지지는 않았는지 등을 제어)
- 흐름 제어에 관련된 추가 정보(처리할 수 있는 속도로 송신하도록 제어)
- 효율적인 처리를 위해 트레일러를 이용하기도 함. 왜? 헤더에 붙이면 데이터를 끼워넣고 다시 정렬해야 하는 상황이 올 수도 있기 때문
- 네트워크 계층
- 네트워크 주소를 기반으로 (어디어디를 거쳐 갈 것인지) 호스트 간 데이터의 전송 경로를 결정하는 라우팅 문제 처리
- 전달 경로 설정
- 정적: 사전에 미리 정해진 경로 이용(예 - 옛날 내비)
- 동적: 네트워크 상황 등을 고려하여 판단(예 - 요즘 내비)
- 패킷(packet)
- 네트워크 계층에서의 전송 데이터 명칭
- 혼잡 제어
- 네트워크를 이용하여 전송하는 데이터가 과도하게 많은 경우 전송속도가 떨어지는데, 이를 조절
- 네트워크 계층에서 혼잡 제어를 하지 않는 경우 전송 계층에서 수행하기도 함 (예 - 인터넷에서 IP는 혼잡 제어를 하지 않고 상위 계층인 TCP에서 제어)
- 전송 계층
- IP 주소를 가지고 찾아오는 것이 네트워크 계층의 역할 (예 - IP 주소를 가지고 찾아오는 것)
- 송신 프로세스와 수신 프로세스를 연결하는 단대단(end-to-end) 통신 기능 제공
- 프로세스를 구별할 수 있는 주소 개념 필요
- 포트 번호: 호스트 안 많은 프로세스 중 내가 통신하길 원하는 프로세스를 표현할 수 있는 방법
- 예 - 친구 집에 전화 걸었을 때 다른 사람이 받는다면 원하는 사람을 이야기헤 실제 연결하고자 하는 사람과 통화할 수 있음
- 세션 계층
- 상위적(논리적) 연결 개념인 세션 기능 제공
- 대화 제어
- 토큰 제어 (예 - 발언권)
- 동기화
- 목적을 다 달성하지 못하고 연결이 끊겼을 경우 끊긴 부분(동기점)부터 다시 시작
- 표현 계층
- 일종의 번역 서비스
- 통신 양단에서 서로 이해할 수 있는 표준 방식으로 코딩
- 응용 계층
- 나머지 6개층 외 모든 것
- 사용자에게 유용한 다양한 서비스
- http
- ftp
- telnet
- 인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 때에 지원되는 인터넷 표준 프로토콜
- 23번 포트 사용
'CS > 네트워크' 카테고리의 다른 글
라우팅 Routing (0) | 2024.10.02 |
---|---|
라우팅 알고리즘 - 벨만포드 (Bellman-Ford), 다익스트라 (Dijkstra) (2) | 2024.10.02 |
네트워크의 기초 - 네트워크 주소의 표현 (0) | 2024.09.30 |
소켓 시스템 - 네트워크 프로그래밍 (0) | 2024.09.30 |
데이터 링크 계층 (1) - 프로토콜의 기초 (0) | 2024.09.30 |