OSI 7계층

ktooy__·2023년 8월 24일

배포 스터디

목록 보기
1/3

🔗 클라이언트 / 서버 모델

: 브라우저 -> 서버, 서버 -> 서버
클라이언트가 서버에 요청을 보내고, 서버는 클라이언트에게 응답을 보낸다.
-요청을 보내는 곳이 클라이언트, 응답을 보내는 곳이 서버이다.

🔗 물리 계층(Physical Layer)

랜카드: 전기 신호 <-> 1, 0 바꿔준다.
8bit = 1byte

데이터 링크 계층의 데이터: 프레임

: 데이터링크 계층에서는 컴퓨터의 MAC 주소, 다른 사람 컴퓨터의 MAC 주소가 들어있다. 그래서 데이터가 어디에서 출발해서 어디로 도착하는지 알 수 있다.
예) 0101: 목적지(다른 컴퓨터의 MAC주소) 1110: 출발지(내 컴퓨터 MAC 주소) 0001: 유형 1001: 보낼 데이터 1110: 트레일러

--MAC 주소
예) 랜카드의 ID: 00-0C-29-6C-F3-E5
48bit, 48bit인 이유는 한 자리당 4bit씩 12자리이므로
랜카드의 아이디가 010101..로 바뀌어서 출발지로 들어간다.

❔ 목적지 MAC 주소 어떻게 아나?
: 가까운 옆 사람한테 목적지 컴퓨터의 MAC 주소를 물어보는 형식.

그렇다면 옆 사람은 누구? : 스위치, 허브
허브는 동시 데이터 요청하면 충돌이 일어나서 스위치를 주로 사용.
스위치에 꽂은 컴퓨터끼리는 데이터 전송이 가능하고, MAC 주소를 기억하고 있다.

--Ethernet, 프로토콜(약속): 데이터링크 계층에서 나온 데이터를 ~식으로 해석하자라는 약속.

물리 계층에서 01010밖에 없었는데 Ethernet이라는 프로토콜로 인해 데이터에 의미가 부여되었다.

0101: 목적지(다른 컴퓨터의 MAC주소) 1110: 출발지(내 컴퓨터 MAC 주소) 0001: 유형 1001: 보낼 데이터 1110: 트레일러

-유형은 네트워크 계층에서 어떤 네트워크(ipv4, ipv6, arp등)가 데이터를 받을지에 대해 적혀 있다.

위의 데이터를 정해진 프로토콜에 맞춰 해석이 가능해졌다.

--wifi도 이더넷과 비슷한 하나의 프로토콜이다. 데이터 링크 계층이라고 보면 된다. 랜선은 이더넷, 무선은 wifi, 무선으로 컴퓨터 MAC 주소 받아서 통신한다.


🔗 네트워크 계층(Network Layer)

네트워크 계층의 데이터: 패킷

0101: 목적지(다른 컴퓨터의 MAC주소) 1110: 출발지(내 컴퓨터 MAC 주소) 0001: 유형 1001: 보낼 데이터 1110: 트레일러

보낼 데이터 부분이 네트워크 계층의 데이터이다.
ip : 네트워크의 고유 주소
MAC 주소: 컴퓨터 고유 주소

01010이 32자리, 32bit IPv4 -> 네트워크 주소 고갈 -> 128bit IPv6

🔗 IP 주소
사설 ip: 10으로 시작하거나 172.16 ~ 172.31, 192.168로 시작
다른 사람의 네트워크를 찾으려면 MAC 주소를 찾기 전에 네트워크를 먼저 찾아야 된다. IP를 알아야 하는데 IP는 공인 IP와 사설 IP로 나뉜다.
이때, 공인 IP를 알아야 소통이 가능하다. 사설 IP는 다른 사람과 소통이 안된다.(집에 있는 네트워크, 공유기일 가능성이 큼)

--MAC주소로 스위치를 찾고, 라우터에서는 옆 라우터 주소(목적지 IP)로 찾는다.

프레임: 목적지 MAC 주소 + 출발지 MAC 주소 + 네트워크 데이터 + 트레일러

네트워크 데이터: 목적지 IP + 출발지 IP+ 전송계층 데이터 ..

✔️ 네트워크에는 대표 주소인 IP가 있으나 개수 한정으로 내부 네트워크는 사설 IP를 쓴다.


🔗 전송 계층(Transport)

전송 계층의 데이터: 세그먼트
세그먼트:
TCP 헤더 + 데이터(세션 계층 데이터)
UDP 헤더(데이터 그램) + 데이터

🔗 포트: 80(HTTP), 443(HTTPS), 22(SSH)
: 컴퓨터 안에 여러 프로그램 중 어떤 프로그램에 데이터가 가야 하는지 구분해준다. 어떤 프로그램이 데이터 처리?

랜덤IP:80(포트번호, HTTP 서버가 처리하는 데이터)

--프로토콜
TCP/UDP
TCP : 데이터 받았는지, 연결 되었는지 확인 - 신뢰성 보장, 데이터 용량 크다.
UDP: 받았는지 안받았는지 확인 안 함. 빠른 전송


🔗 응용 계층(Application)

응용 계층의 데이터
HTTP 헤더 + HTTP 본문(BODY)
HTTP 헤더: 요청(GET)/응답
세션, 표현, 응용

--전송 계층에서 포트를 함께 보내면, 포트를 실제로 처리하는 것은 세션, 표현, 응용 계층에서 한다.


🔗 정리

응용
HTTP 헤더(POST/users) + 본문
세션
HTTPS 암호화 | HTTP 헤더(POST/users) + 본문
전송
TCP 헤더 443 | HTTPS 암호화 | HTTP 헤더(POST/users) + 본문
네트워크
IP 주소 | TCP 헤더 443 | HTTPS 암호화 | HTTP 헤더(POST/users) + 본문
데이터
MAC 주소 | IP 주소 | TCP 헤더 443 | HTTPS 암호화 | HTTP 헤더(POST/users) + 본문
물리
0101011010.... 프레임이 전기 신호로 변환


🔗 DNS와 레코드
DNS: 인터넷 전화번호부
인터넷에 연결된 각 기기에는 다른 컴퓨터가 기기를 찾는 데 사용하는 고유한 IP 주소가 있다. 복잡한 IP 주소를 기억할 필요 없이 DNS를 이용

https://www.cloudflare.com/ko-kr/learning/dns/what-is-dns/

1.DNS Resolver에게 👩‍💻: "example.com ip 좀 찾아줘"
2.Root server로 가면 .com을 담당하는 TLD 서버로 보내줌
3.TLD server에서는 5. example.com 네임 서버에게 물어보라고 알려줌

6, 7. 네임 서버가 아이피 보내줌
네임 서버는 레코드들을 갖고 있는데, ipv4는 A 레코드 사용, 이 레코드에 아이피가 적혀있다.
받은 아이피로 해당 네트워크에 요청 보냄.

연결과정 복잡하고 시간이 걸리기 때문에 DNS 캐시가 사용된다. 복잡한 과정을 통해 얻은 결과물을 저장해둔다. 매번 물어보는 것이 아니라 저장해두고 요청이 올 때 그 값을 꺼내서 전달!

Common DNS Record Types
A (Host address, IPv4)
AAAA (IPv6 host address)
ALIAS (Auto resolved alias)
CNAME (Canonical name for an alias)
MX (Mail eXchange)
NS (Name Server)
PTR (Pointer)
SOA (Start Of Authority)

도메인을 구매한 뒤 NS 변경할 때 악의적인 서버에 연결을 하면 나의 서버가 아닌 해커의 서버로 보낼 수 있기 때문에 조심해야 한다.

0개의 댓글