면접 대비겸 CS공부
OSI 7계층
- 국제표준화기구에서 네트워크 프로토콜과 통신을 계층적으로 구분한 모델
- 이질적인 시스템 간의 상호접속을 위한 개념을 규정
특징
- 순서 : 송신은 7계층 -> 1계층, 수신은 1계층 -> 7계층 순으로 진행되고, 이 모델에 따라 각 단계별 프로토콜을 정의한다.
- 계층의 독립 : 어떤 계층의 변화가 다른 계층에 영향을 주지 않는다.
- 상위 > 하위 : 기본적으로 하위 계층은 상위 계층을 위해 기능하고, 상위 계층은 하위 계층에 관여하지 않는다.
7. 응용 계층
- 사용자가 보는 소프트웨어의 UI, 네트워크 서비스, 사용자의 입출력 부분 등을 담당하는 계층이다.
- 목적에 따른 프로토콜(웹 접속 - HTTP, 파일 전송 - FTP 등)이 존재
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
6. 표현 계층
- 사용자의 명령어 혹은 입력한 데이터를 완성(결정)한다.(형식 : 문자, 음성, 아스키...)
- 하드웨어나 OS 등의 차이를 없앤 데이터 교환을 가능하게 한다.(포장? 압축?)
- MIME 인코딩이나 암호화 등이 표현 계층에서 동작한다.
5. 세션 계층
- 데이터 통신(송수신)을 관리하기 위한 방법을 제공하는 계층이다.
- 어떻게 통신할 것인가?(동시 송수신, 반이중 방식, 전이중 방식 등)
- 체크 포인팅과 종료, 다시 시작 과정 등을 수행
- 다이얼로그 제어(세션 관리 -> TCP/IP 세션을 의미하는 건가?)
4. 전송 계층
- 양 끝단의 사용자들이 신뢰성이 있는 데이터 송수신을 할 수 있도록 하는 계층
- 송수신할 데이터에 대한 관리
- 연결 기반
- 시퀀스 넘버 기반의 오류 제어 방식을 사용 + 흐름 제어
- 데이터가 유효한가?(제대로 전달되었는가?) -> 아니라면 실패한 데이터(패킷)을 다시 전송
시퀀스 넘버 기반으로 오류 제어를 한다는 게 뭔데?
구글링을 좀 해봤는데 시퀀스 넘버 기반의 오르 제어 방식을 사용한다-라고만 하고 막상 그게 뭔지는 없더라. 그래서 시퀀스 넘버를 대신 검색하고 공부했더니 이해할 수 있었다.(알고 보니 TCP 핸드 쉐이킹에 대해서 공부할 때 그 시퀀스더라...)
시퀀스 넘버란?
- 통신과 제어에서 데이터를 관리하기 위해 번호를 부여한다.(대표적인 전송 계층인 TCP로 예를 들면, TCP 패킷 헤더에 Sequence & Ack number라는 걸 채운다)
- 해당 번호는
순서 역전 방지
, 중복 패킷 방지
등을 이유로 사용
그러니까 데이터를 한 번에 송수신하지 않고 패킷 단위로 작업하니, 그것들이 섞이거나 중복되는 경우를 방지하기 위해서 사용한다는 뜻
부여 방식
0
또는 랜덤한 값
부터 최대값
.. 최대값 이후에는 다시 0
부터 시작됨
기타
- TCP로 조금 상세하게 넘어가면(신뢰 보장성 측면으로 접근해서)
TCP Sequence & Ack number
, TCP에서 데이터 바이트 스트림
, MSS (Max Segment Size)
이 개념들로 인해 각 넘버 필드가 어떻게 바뀌고(MSS가 ??일 때) 재전송되는가에 대한 것은 TCP를 공부할 때 다루도록 하겠다.
3. 네트워크 계층
- 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층
- 세그먼트(네트워크) 간의 데이터 송수신
- 라우팅, 세그멘테이션, 오류 제어, 흐름 제어, 인터네트워킹 등을 수행
2. 데이터 링크 계층
- 포인트 투 포인트 간의 신뢰성이 있는 전송을 보장하기 위한 계층
- 세그먼트 내(같은 네트워크의 노드들?)에서의 데이터 송수신
- CRC 기반의 오류 제어, 흐름 제어(충돌 방지)
- 이더넷
CRC는 또 뭐야?
- CRC(cyclic redundancy check)는 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식이다.
- CRC는 데이터를 전송하기 전에 주어진 데이터의 값에 따라 CRC 값을 계산하여 데이터에 붙여 전송하고, 데이터 전송이 끝난 후 받은 데이터의 값으로 다시 CRC 값을 계산한다. 그렇게 나온 두 값을 비교하는 것으로 데이터를 체크한다.(값이 다르면 오류)
좀 더 자세히 알고 싶다면 -> 순환 중복 검사(위키백과)
1. 물리 계층
- 전기, 기계 등과 같은 물리적인 부분의 송수신 담당
- 네트워크 하드웨어의 전송 기술을 이룬다.
- 신호 재전송(리피터), 신호 변조 및 복조(모뎀)
- 어뎁터, 모뎀 같은 것들이 여기 속함
종합