OSI 7 계층
네트워크에서 일어나는 일련의 통신 과정을 계층으로 나타낸것
물리계층
전기신호를 0과 1 혹은 0과 1을 전기신호로 바꿔주는 행위가 물리계층에서 일어난다.
랜카드 : 전기신호를 0과 1 혹은 0과 1을 전기신호로 바꿔주는 역할
데이터 링크 계층
0101110100110011100과 같이 구성된 데이터가 누구한테 가는지 정해진다.
MAC주소 : 한자리씩 4bit 총 48bit로 구성된 기기의 주소 (= 랜카드 ID)
Q: 출발지의 MAC주소는 내기기니까 알 수있는데 목적지의 MAC주소는 어떻게 알아낼까?
A: 옆에 장치에게 물어보고 또 옆에 장치에게 물어보고 해서 알아낸다.
스위치 또는 허브를 통해 목적지에 해당하는 기기에 도착한다.
프레임 : 데이터링크에서 전송 및 받은 데이터를 의미한다.
프로토콜 : 데이터 링크에서 나온 데이터를 어떻게 해석할지 정한 약속
스위치,허브,라우터 참고 https://blog.naver.com/reductionist101/221468851236
네트워크 계층
네트워크 계층에서는 ip구분이 주 목적
여러 MAC주소가 스위치로 묶이고 스위치는 라우터로 묶이고 이것이 하나의 네트워크를 이루면서 IP주소를 가지게 되며 이러한 연결관계를 인터넷으로 볼 수 있다.
ip : 기계들이 여러 개 모여있는 하나의 네트워크 주소
ip는 공인 ip 와 사설 ip 가 있으며 타인과 공유하기 위한 ip 는 공인 ip 를 사용해야한다.
공인ip : 192.168, 172.16 ~ 172.31, 10 등을 제외한 ip
ipv4 : 32비트의 네트워크 주소 형태 (0.0.0.0 ~ 256.256.256.256)
ipv6: ipv4의 주소가 부족할 것을 대비하여 만든 128비트의 네트워크 주소형태
라우터 : 여러 기기들이 연결된 스위치를 묶는 장치 (스위치를 묶어서 하나의 네트워크를 구성)
네트워크 : 여러 스위치를 묶은 라우터 하나로 나타낼 수 있다.
이 네트워크가 있으면 다른 쪽에도 네트워크가 있을 수 있다.
각 네트워크IP끼리 통신하면 우리가 사용하는 인터넷이다.
전송 계층
컴퓨터안에서 여러 프로그램이 실행될 수 있는데 포트를 통해서 어떤 프로그램에게 데이터가 가야하나를 구분해주는 계층이다.
포트
80 => http
443 => https
22 => ssh
53 => DNS
포트사용범위 : 0 ~ 65535
Well Known Port(잘알려진 포트) : 0 ~ 1023은
이미 다른곳에서 쓰고 있을 수 있어서 직접 안쓰는게 좋다.
프로토콜
TCP : 3way handshake라는 것을 사용해서 연결 맺었는지 확인, 데이터를 받았는지 확인하는 과정을 한다. 데이터가 제대로 전달되었음을 믿을 수 있다.
사용하는 곳: HTTP1.1, HTTP2
장점: 안정성있는 데이터 전송이 가능하다.
단점: 데이터 용량이 크다.
UDP : 데이터를 받았는지 안받았는지 신경쓰지않고 데이터를 막 전달
사용 예: 동영상이나 멀티미디어에 사용
사용하는 곳 : HTTP3
장점: 빠르다.
단점: 데이터 유실률이 크다
세그먼트 : TCP헤더 + 기타데이터(http데이터)
데이터그램: UDP헤더 + 기타데이터(http데이터)
세션계층 + 표현계층 + 응용계층 => HTTP데이터
세션계층(HTTPS => SSL/TLS) + 표현계층(UTF8, ASCII, JPG, PNG 같은 데이터형식을 각 계층에 맞게 압축 및 인코딩,디코딩) + 응용계층(HTTP)
은 응용프로그램의 계층이여서 하나로 묶어 표현
HTTP데이터 : HTTP헤더 + HTTP 본문(바디)
HTTP헤더: 요청헤더 / 응답헤더
요청헤더 GET /index.html, Host: xxxxx.com, Body(01010101)
요약 정리
송신자의 입장
응용계층 - 사용자의 데이터와 직접적으로 상호작용하는 계층을 말합니다.
표현계층 - 데이터를 압축 혹은 인코딩하는 단계를 말합니다.
세션계층 - 두 기기간에 통신을 시작하고 종료하는 일을 담당하는 계층으로 통신이 시작할때부터 종료될떄까지의 시간을 세션이라고 합니다.
만약 100mb의 데이터 전송도중 50MB가 전송된 후 끊겼을때 이시점을 기억하는 체크포인트를 설정할 수 있어
이후 통신재개시 나머지 50MB만 전송하면 됩니다.
전송계층 - 세션에서 받은 데이터를 TCP이냐 UDP이냐에 따라 세그먼트 혹은 데이터그램 단위로 나누게 됩니다.
네트워크계층 - 전송계층에서 받은 세그먼트 혹은 데이터그램 데이터를 패킷단위로 더 쪼개고 서로다른 네트워크 간에 최적화된
전송 경로를 찾는 계층입니다.
데이터연결계층 - 네트워크 계층에서 받은 패킷데이터를 프레임단위 쪼개고 어느 기기의 MAC주소로 갈지 정해지는 계층입니다.
물리계층 - 0과 1로 되어있는 데이터를 전기신호로 변경되는 계층입니다.
더 자세한 내용 참고
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
'네트워크' 카테고리의 다른 글
웹소켓 (0) | 2024.04.15 |
---|---|
HTTP / 1.1, HTTP2, HTTP3 (0) | 2024.04.15 |
HTTP(HyperText Transfer Protocol) (0) | 2024.04.12 |