쿠쿠더님의 블로그

OSI7 계층, HTTP 본문

CSS , HTML

OSI7 계층, HTTP

쿠쿠더 2025. 2. 21. 17:53
  • OSI7 계층
    • 물리 계층 (하드웨어) 
    • 데이터 링크 계층(하드웨어)
    • 네트워크 계층 (소프트웨어 + 하드웨어)
    • 전송 계층 (소프트웨어)
    • 세션 계층 (소프트웨어)
    • 표현 계층 (소프트웨어)
    • 응용 계층 (소프트웨어)
  • OSI7 모델과 TCP/IP 모델
  • TCP/IP
    • TCP/IP 업데이트 모델
  • TCP와 UDP
  • 3-way-handshake
  • 4-way-handshake
  • binary Date
  • ASCII CODE
  • 유니코드
  • 인코딩의 규칙
  • HTTP

 

OSI7 계층 이란?
- 네트워크 통신을 쉽게 이해할수 있도록 계층을 나눈 개념
- 각 개층이 역할을 가지고 계층간에 데이터를 주고 받기 위해서 네트워크 통신을 단계별로 나눈것.

 

 일단 줄임말로 `물데네전세표응`이라고 하는데 설명하겠다.

 

1. 물(물리 계층) - 하드웨어

- 두 컴퓨터가 있다고 가정하면 컴퓨터는 파일이나 프로그램들이 모두 0과 1로 관리한다.

- 두 컴퓨터는 통신을 하기 위해서 전기 신호, 전기 기파 등을 사용해서 데이터를 표현하고 전달해야한다.

- 0101 => 아날로그 신호로 변화해서 ---> 디지털 신호 ( 0과 1 값으로) 복원해서 데이터를 받을수 있다.

예시) 배달을 한다고 가정하면 물리계층은 도로의 역할

 

2. 데(데이터 링크 계층) - 하드웨어

같은 네트워크에 있는 여러 컴퓨터가 데이터를 주고받을 수 있도록 한다.

스위치 : 네트워크에 있는 데이터를 전송하는 하드웨어

브리지 : 네트워크 연결해서 데이터의 흐름을 관리한다.

랜카드 : 컴퓨터와 네트워크를 연결하는 하드웨어

MAC 주소 : 네트워크 장치의 고유 주소 

예시) 배달을 하는 기사가 도로를 통해 배달을 하면서 차선 등을 옴겨다니며 신호등을 보고 사고가 안나게 배달을 진행하는것

 

3. 네(네트워크 계층) - 소프트웨어,하드웨어

IP 주소를 사용해서 데이터를 목적지 즉 컴퓨터로 전송한다.

라우터 : 네트워크 패킷을 라이팅하는 하드웨어, IP 주소를 기반으로 데이터를 전송한다.

DNS www.naver.com  -> IP

IP 주소 : 인터넷에서 장치간의 통신을 위해 사용하는 고유의 주소

예시) 배달기사가 주소를 보고 목적지까지 배달을 하는 과정 

 

4. 전(전송 계층) - 소프트웨어

- 포트 번호를 사용해서 데이터를 받은 컴퓨터의 최종 목적지 프로세스까지 도달 하도록 한다.

- 운영체제의 커널에 구현되어 있다.

 

5. 세(세션 계층) - 소프트웨어

- 세션을 설정하고 관리하고 유지

- 로그인 유지나 동기화 

 

6. 표(표현 계층) - 소프트웨어

- 데이터 인코딩 디코딩 압축이나 암호화를 한다.

- 데이터 포멧 GIF JPEG 등의 변환

- 암호화 : SSL 등의 보안

 

7. 응(응용 계층) - 소프트웨어

- 유저가 직업 인터넷을 이용하는것 상호작용을 하는 계층

- 웹 서비스 : API 통신, 이메일 전송, 파일 전송

 

OSI7 모델과 TCP/IP 모델

- 이전에는 OSI 7계층 모델을 주로 사용했는데

- 현재는 인터넷이 TCP/IP 모델을 더 많이 사용하게 되었다.

- 시장 점유 싸움에서 밀려서 TCP/IP가 더 우세했다.

 

TCP/IP

- 기존 TCP 모델은 4계층으로 

1. 네트워크 엑세스 계층 : 물리 계층 , 데이터 링크 계층이 포함

2. 인터넷 계층 : IP 주소 기반의 데이터 전달

3. 전송 계층 : TCP/UDP 신뢰성이 있는 데이터를 전송

4. 응용 계층 : HTTP 등의 프로토콜을 제공

 

TCP/IP 업데이트 모델 

1. 네트워크 인터페이스 모델 : 물리적 전송 매체 등과 하드웨어 (이더넷 wifi 등 포함)

2. 인터넷 계층 : IP주소 기반 패킷 전달 IPv4

3. 전송 계층 : TCP/UDP 등을 지원

4. 응용 계층 : HTTP 웹 소켓 등

 

TCP와 UDP

- `프로토콜` 네트워크에서 데이터를 전송 즉 요청 응답을 하기위해서 규칙을 정한것.

- OSI 모델의 4계층 전송 계층에 해당한다.

 

TCP (연결성)

- 데이터 전송 이전 두 장치가 안정적인 논리적 연결을 했는지 검사 하는 프로토콜

 

UDP( 비연결성)

- 데이터의 전송 논리적 연결을 하지않고 데이터 전송을 지향하는 프로토콜

( 영상 스트리밍 게임 등 같은 짧은 대기시간 빠른 속도가 필요한 곳에 사용)

 

3-way-handshake

- 클라이언트가 서버로 요청을 보내면 준비를 하는 단계

- 데이터를 주고 받기 위해서 검증을 하는것 검증이 되면 논리적으로 연결이 되었다.

1. SYN 전송

- 클라이언트가 서버에 준비됬니?

- SYN 패킷을 보낸다. 

 

2. SYN-ACK 응답

- 서버에서 클라이언트에게 나도 준비됬어 

- 서버에서는 SYN-ACK의 패킷을 보낸다.

 

3. ACK 전송 

- 클라이언트는 서버에게 메시지를 받아서 나 잘받았어 우리 이제 데이터를 주고받자.

- 논리적 연결이 되는 시점.

 

예시)

클라이언트 -> 서버 : SYN 패킷

서버 -> 클라이언트 : SYN + ACK

클라이언트 -> : ACK

논리적 연결이 된 상태 값을 데이터를 안전하게 전송할 준비가 끝났다.(데이터를 전송하는 과정이 일어난다.)

 

4-way-handshake ( 논리적 연결을 끊는다.)

 

1. FIN 전송

클라이언트에서 이제 논리적 연결 종료하자

너 데이터 다 보냈니?

 

2. ACK 응답

서버 나 아직 응답할게 남아있어

데이터를 전송하지 못했으면 다 처리

 

3. FIN 전송

서버에서 클라이언트에게 데이터를 다 보냈고 준비됐다.

 

4. ACK 응답

서버가 응답을 받고 나 확인 완전히 종료 

 

--한줄 요약

3-way-handshake는 논리적 연결 시작 4-way-handshake 연결 종료 

데이터 네트워크에서 주고받을떄 TCP 연결 지향 방식으로 데이터를 주고받는다.

 

바이너리 데이터 (binaru data)

- 엄밀하게 따지면 , 모든 data 혹은 파일은 binary data 이다.

- 비트로 표현된다.

- 사람이 읽을 수 없는 언어 말 그대로 컴퓨터 언어.

용도

- 다양한 형태의 미디어 혹은 파일을 저장 혹은 전송할 떄 사용

- 사용자가 웹 사이트에 업로드하는 이미지, 동영상 혹은 다운받는 파일 등에 사용됨 

- `Character Set 문자 집합` :  keycode : 컴퓨터는 A와 a가 다르게 받아들인다.

- 영어 문자도 숫자로 표현 

- 사람이 정해놨기 떄문에 `문자 집합` - 문자 집합이란 문자를 숫자로 표현 할수 있도록 정의한 규칙 

 

ASCII CODE 란 

- 글자를 표현할때 8bit만 사용한다. 1byte

8bit 중에서 1bit는 오류 체크 용도로 실제로 사용은 7bit

1bit는 오류 체크용으로 사용하고 `prity bit(페리티 비트)`

한글을 제외한 키보드의 자판에 있는 영어와 특수문자만 표현이 가능하다.

하글을 1byte로는 표현이 불가능 알파벳은 1글자 한글은 1자움으로는 표현할수 없기 떄문에

ASCII Table - 아스키 코드표 :: 오뇽

 

유니코드 

 

전 세계의 모든 언어를 다룰려고 만든 언어 

https://namu.wiki/w/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C

 

인코딩의 규칙 

문자를 숫자로 나타내는 것이 규칙이 있는 것처럼 숫자를 바이너리 데이터로 나타내는 규칙이 있다.

A 는 숫자 65 -> 이진수로 표현하면 10000001d으로 표현이 된다.

A12를 컴퓨터가 2진수로 표현하면 10000011100 이렇게 변환을 해서 저장한다.

컴퓨터는 어디서 나눠야 할지 어디를 잘라야할지 몇글자를 잘라야하나.

1000 001100 결과물이 달라질수 있는것.

앞을 8bit씩 뒤를 4bit씩 잘라야 A12글자를 만들수 있는데 그래서 우리는 이런 값을 `문자 인코딩`을 하는것.

문자 인코딩중 하나인 utf-8 => 8의 숫자가 바로 bit를 나타내는것.

 

1. A

 A -> 문자집합 -> 65 -> 1000001(이진수) -> 01000001(문자 인코딩)

 

2. 12

12 -> 1100(이진수) -> 00001100 (문자 인코딩)

반대로 값을 호출하면 디코딩 

 

 

오늘의 공부 끝!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

'CSS , HTML' 카테고리의 다른 글

fs 대용량 영상 처리 (video)  (0) 2025.02.24
버퍼와 스트림  (0) 2025.02.24
Nodejs 란?????????  (0) 2025.02.21
쿼리 스트링과 쿠키 와 페이지네이션  (0) 2025.02.19
GUI, CLI , GIT 에 대해서  (1) 2025.02.19