320x100

TCP Length는 1514이상 넘을 수가 없다. (패킷의 최대 사이즈는 1500 + 프레임의 최대크기는 14 ) → 1514

 


 

transport layer (전송 계층) (4계층)

데이터 링크 계층은 물리적으로 1:1 연결된 호스트 사이의 전송이라면, 전송계층은 논리적으로 1:1 연결된 호스트 사이의 전송

 

  • 흐름 제어

물리적 계층과 비교하여 상대적으로 복잡

수신자가 슬라이딩 윈도우 프로토콜의 윈도우 하단 값을 조정

슬라이딩 윈도우 프로토콜은 데이터 전송의 흐름을 제어하는 방법입니다. 이 프로토콜은 주로 TCP(전송 제어 프로토콜)에서 사용되며, 송신자와 수신자 간의 데이터 전송을 효율적으로 관리하기 위해 사용됩니다.

슬라이딩 윈도우 프로토콜의 기본 개념:

 

윈도우 크기:
슬라이딩 윈도우 프로토콜에서는 송신자가 한 번에 전송할 수 있는 데이터의 양을 "윈도우 크기"로 정의합니다. 이 윈도우 크기는 수신자가 처리할 수 있는 데이터의 양을 나타냅니다.

 

윈도우 하단 값:
윈도우 하단 값은 현재 수신자가 수신할 수 있는 데이터의 시작 지점을 나타냅니다. 데이터가 수신되면 이 하단 값이 이동하여 새로운 데이터가 수신될 준비가 됩니다.

 

수신자가 윈도우 하단 값을 조정하는 이유:
수신자는 자신의 버퍼 크기 및 처리 능력에 따라 윈도우 하단 값을 조정합니다. 만약 수신자의 버퍼가 가득 차면, 수신자는 송신자에게 더 이상 데이터를 보내지 못하도록 하여 데이터 손실을 방지합니다.

 

  • 오류 제어

데이터 변형, 데이터 분실 오류

재전송 기능으로 복구

빨리말하면 이해 못한다.

 

TCP 헤더 크기는 20 이다.

1480 - 20 = 1460

 

TCP

연결형 서비스를 지원

전이증(쌍방향) 방식의 가상 회선을 제공

신뢰성 있는 데이터 전송을 보장

 

TCP 헤더

1층은 4byte

TCP 헤더 크기: 4 * 5층 = 20 byte

6층// padding 은 배수를 맞춰주기 위해 사용한다. // 마지막 층은 지금은 사용하지 않는다.(제외)

TCP, UDP (4계층)의 상위 계층은 7계층(응용프로그램) 이다.

 

포트번호

  • TCP, UDP 프로토콜이 상위 계층에 제공하는 주소 표현 방식

TLS (port 443)

SSL (port 20)

 

TLS(전송 계층 보안, Transport Layer Security)는 인터넷에서 데이터의 안전한 전송을 보장하기 위해 설계된 암호화 프로토콜입니다

Well-known 포트

  • 많이 사용하는 인터넷 서비스에 고정된 포트 번호 할당

포트 숫자가 1024 보다 작으면 모두 Well-known 포트이다. (전세계 통용)

  • Source port : 보내는 쪽의 포트 // 웹서버 포트는 port 80
  • Sequence Number: 3계층 네트워크 계층까지는 데이터만 빨리가면 되었지만, 4계층에서는 데이터 전송의 신뢰성과 순서를 보장하는 데 필수적인 역할을 합니다.
  • Acknowlegement number : 말풍선 100개를 했는데 응답이 50번 까지만 받으면 100을 다 받기 위해 기다린다. 응답이 오지 않으면 51번 부터 다시 보낸다. - 상대가 어디까지 받았는지를 확인하는 것
  • Data Offset(= headerLength 20byte)
  • Reserved : 앞으로 예약된 것이 있다. (요즘은 사용하지 않아서 0 값을 넣는다)

Flag 각 1비트 (1비트는 경우의 수가 2개)

  • URG (urgent) : 패킷을 빠르게 처리 할 수 있는 방법 ( urgent 라고 빨리 보낼 수있는 것이 요즘은 없기 떄문에 사용하지 않는다 비트번호 0 으로 처리)
  • ACK : SYN 에서 의견을 물어보고 ACK 에서 대답을 한다. 응답하면 okay sign 응답을 안보내면 no
  • PSH (push) : 해더 해석이 다 되었으면 상위계층으로 올릴때 사용
  • RST (reset): 급한일이 있을때 너랑 이야기 안해하고 끝남 FIN은 1의 신호를 받아야끝나지만 이건 내가 통보하는 방식임
  • SYN : 0하고 1밖에 없다고 가정하면, 나는 너하고 이야기하고 싶어라고 신호 1(말풍선)을 던지는 의견을 물어봄
  • FIN (finish) : 할말 다 끝나고 FIN을 1로 보내면 그 이후에 내가 어떤말을 하든 간에 듣지 못한다.
  • Window : 슬라이딩 윈도우 프로토콜과 같음 // 상대방이 초당 100 마디하면 난 능력이 안되 초당 50마디만 말해줘 라고 제어해주는 흐름제어장치
  • Checksum : 무결성을 확인하기 위함
  • Urgent Pointer : URG가 1이 되었을때 사용, 급한 일이 있을떄 사용하기 위함 // 요즘은 URG 를사용하지 않기 떄문에 비트번호가 0 이 되어야한다.

Sequence Number 는 정하기 나름 (보통 1로 시작)

  • Sequence number
  • ACK number : 다음에 수신하기를 원하는 데이터를 지정

6계층에서 내려온 것을 캡슐로 싸면 캡슐라이제이션


UDP - 8byte

비연결형 서비스를 제공

Best effort (빨리만 보내면 된다) 전달방식을 지원

실시간적 중요성을 하기 위해 생김 (헤더 처리가 없기 떄문)

신뢰성이 의미가 없을때 빨리 하기 위해서 사용

지금의 모든 것들은 TCP 를 사용한다.

지금 실시간 방송은 TCP 를 사용 // 엄밀히 따지만 실시간은 아니다 UDP를 사용해야함

ex) 프랑스에서 금메달 땃으면 바로 주는게 아니고 2~3초동안 데이터의 분실이 있나 확인하고 송출한다.

해커들이 명령어 때릴 떄는 UDP 를 사용한다 ( 응답을 받을 일이 없기 때문)



SYN Flooding

SYN Flood는 반개방 공격이라고도 하며, 보낸 SYN 요청에 대한 서버의 SYN-ACK에 응답하지 않고 SYN 요청만 마구잡이로 보내는 네트워크 계층 공격입니다. 결과적으로 많은 수의 열린 TCP Connection으로 인하여 서버의 리소스가 과도하게 소모되어 정상 트래픽의 처리를 어렵게 하면서 정상적인 새로운 Connection을 열 수 없으며, 이미 연결된 사용자의 Connection의 경우에도 서버가 올바르게 작동하기 어렵게 됩니다.

300x250
320x100

포렌식은 크게 3가지로 나눠진다.

시스템 포렌식 - 너무 경우의 수가 많다.

네트워크 포렌식 - 통일된게 있다. (악성코드 분석, 트래픽 분석)

메모리 포렌식은 망했다. - SSD는 주기적으로 싹 지움

 

인터네트워킹

라우터: 네트워크를 연결하는 장비이며, 일반적으로 3 네트워크 계층 기능을 수행

서브넷 마스크가 있기 떄문에 랜을 구별할 수 있다.

 

리피터 : 반복한다 / 랜이 너무 커서 10km가 되면 랜인 회선으로 연결되어있는데 전기신호가 10키로 동안 계속 가는건 저항이 생긴다 떄문에 중간 중간 리피터(증폭기)를 설치를 한다. - 요즘은 사용하지 않음

 

브릿지: 랜을 버츄얼하게 나누고 싶을때 사용 / 라우터의 랜을 가상으로 한 포트당 몇개씩 버츄얼 하게 하기 위해서 랜선 하나 따서 그 밑에 여러개를 묶는 것 - 요즘은 라우터 값이 싸져서 사용하지 않음

 

랜에서 시작하여 첫번째로 만나는 라우터를 게이트웨이라고함

 

라우터 설명할때는 3계층 밖에 없다 - 왜냐면, 인터넷 상에 있는 라우터들은 최종 목적지가 아니기 떄문에 네트워크 계층에서 반환되고 다시 물리적 계층으로 내려간다 (목적지 아이피 주소가 나인지 아닌지만 확인함)

 

- 네트워크 계층

- 데이터 링크 계층

- 물리 계층



PART 2

전송 (4계층) - 신뢰성 또는 통신품질에 대해 배울 예정

오류 제어

  • 전송 오류의 유형

화자가 이야기 한 것에 대해 청자가 바르게 알아 들어야한다.

  • 수신(청자) 호스트의 응답 프레임

긍정응답프레임: 데이터가 정상적으로 도착했을때, 수신 호스트가 송신 호스트에게 회신

부정응답프레임: 데이터가 꺠져서 도착했을떄, 수신 호스트가 송신 호스트에게 회신

(부정 응답 프레임을 받은 송신 호스트는 재전송 기능으로 오류 복구 시도)

 

프레임 분실: 내가 말한 것이 통으로 없어진다. (저녁먹을래 → 저녁 … ? )

1) 송신호스트에서 프레임 분실

송신 호스트는 타임아웃 시간을 갖고 상대방의 응답을 기다리는 시간이 있음 / 타임아웃 시간이 지날때까지 응답이 없으면 데이터를 재전송한다.

송신 호스트는 내가 말한 것을 상대방이 알아들었는지 못알아들었는지 판단이 가능하다. )

2) 수신호스트에서 프레임 분실

송신 호스트에서 데이터를 전송하고 “수신 호스트”에서 긍정 응답을 주는 와중에도 데이터 손실이 발생할 수 있다. → 그럼 송신 호스트에서 데이터를 재전송한다.

 

순서 번호 (sequence number)

  • 대화의 순서번호를 저장을 해둬야한다.

송신호스트가 대화를 수신호스트에게 했는데, 수신호스트가 긍정응답을 하는 중 프레임분실이 일어난다면, 송신 호스트는 일정 시간 타임아웃을 주고 기다리다가 다시 재전송을 한다.

만약 순서번호가 없으면 데이터의 중복이 발생한다. (금전적으로 보면 돈을 두번 보내는 꼴)

전송 오류의 유형

  • 수신 호스트의 응답 프레임

부정 응답 프레임을 받은 송신 호스트는 재전송 기능으로 오류 복구 시도

송신 호스트의 타이머 기능

  • 데이터 분실시 수신호스트로부터 어떠한 응답프레임도 발생하지 않음 → 송신 호스트는 일정 시간동안 응답 프레임이 없으면 타임아웃 기능으로 재전송을 시도

순서번호의 기능

 

수신호스트가 중복 프레임을 구분 할 수 있도록 지원

 

흐름제어

  • 수신 호스트가 감당할 수 있는 속도로 송신 호스트가 데이터를 전송하도록 제어를 해야한다.
  • 너무 빨리 전송하는 경우

수신 호스트가 내부 버퍼에 보관하지 못할 수 있음 -> 이는 프레임 분실과 동일한 효과를 야기함

내가 상대방한테 데이터를 줄때 상대방이 받는 응답의 속도에 맞춰서 흐름 제어를 한다. (슬라이딩 윈도우 프로토콜)


1, 2 계층 프로토콜

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

이더넷 =( LAN = MAC = 1,2 계층 = 물리적) 모두 같은말이다. 

 

Dummy HUB : 인터넷을 공유한다 (BUS 구조로 되어있음)

스위칭 HUB : 나만 연결한다 - > 속도가 더미허브에 비해 빠름

 

MA(Multiple Access): 다수 호스트가 하나의 공유 매체에 연결됨

 

CS(Carrie Sense): 호스트는 공유 매체의 사용 가능 여부를 신호 감지로 확인

 

CD(Collision Detection): 공유 매체에서 데이터 충돌 여부 확인

 

공유매체(LAN)의 길이가 길면 길수록 전송 지연이 증가하여 충돌가능성이 높아진다.

 

--------

1,2 계층 = 프레임 (3 계층에서 내려온 데이터 + 헤더를 칭함)

3 계층 = 패킷 (4 계층에서 내려온 데이터 + 헤더를 칭함)

4 계층 = TCP 세그먼트 / UDP 데이터그램 (위에서 내려온 데이터 + 헤더를 칭함)

---------

1,2 계층 헤더 크기는 14byte

3계층 헤더 크기 20byte

4계층 헤드 크기 20byte

-------

0-1500바이트까지 데이터를 담을 수 있다

패킷의 최대사이즈 1500바이트 (그림에서 Data 부분)

패킷의 최대사이즈는 1500을 넘을 수 없다. 하지만 어느날 데이터가 1600이 되어 있으면 ‘비정상’적 이기 때문에 잡아내면 된다.

 

8비트 = 1바이트

 

헤더의 구성

목적지 맥주소 6byte + 소스 맥주소 6byte + type 2byte (length)

= 물리계층의 총 헤더의 길이는 14byte이다. 

헤더 뒤에는 패킷이 따라옴

 

type(Length) 이 0x0800 (숫자 하나 하나가 16진수)이면 IP에게데이터를 줘야한다.

16진수는 2^4이기때문에 = 4비트이다.

‘영’ 4비트 ‘팔’4비트 ‘영’4비트 ‘영’4비트

8비트+ 8비트 = 2바이트



 

Type(Length): 내께 맞으면 데이터를 위로 올려야하는데 OS단에는 stack, IP .. 여러개가 있는데 누구한테 줘야하는지 정해준다. (포트 역할)

 

preamble : 데이터가 가기 전에 미리 알려주는 것 = (수신 호스트가 송신 호스트의 블록 동기를 맞추는 용도)

start delimiter : 1바이트 쉬고 데이터를 보내준다 = 프레임의 시작

 

traller: LAN 카드는 OS에 영향을 받을 수 밖에 없는다 OS에는 64비트, 32비트 설정하는게 있다. 이런것은 bus의 단위를 말함. CPU하고 죽은 기기를 통신할때 1비트씩 보내는게 아닌 64비트는 64를 한번에 보낸다. 만약 버스가 있다고 하면 64의 배수가 되어야 한다. 그럼 데이터를 맞추기 위해 PAD 를 통해 0000000을 집어넣어 64틀에 딱 맞춰서 보낸다.

checksum : 무결성값을 보낸다 // 앞에서 계산한 checksum 과 뒤에서 계산한 checksum값을 비교한다. 값이 다르면 랜카드는 폐기를 한다.

 



Wireshark

랜에서 돌아가는 트래픽을 수집을 한다.

원래 통신은 자기 랜카드 주소에 대한 것만 수집을 해야하는데, 랜카드에 접속되는 모든 전기신호를 다 수집을 한다.

프레임의 순서 | 캡쳐를 시작한 상대적 시간 | source IP주소 | destination | protocol | length | info: info 프레임에 대해 세그먼트에 대해 해석된 것

 

 

왼쪽 하단 = 구조적으로 보여줌

물리적계층 단을 보여준다 =  이더넷

출발지, 목적지, type

 

 

오른쪽 하단

목적지와 소스의 아이피의 16진수(각 6바이트) + type 2바이트                        아스키코드

 

 

랜카드가 물어봐야하니까 랜카드 맥주소를 씀

와이어샤크 캡처 옵션에서 “모든 인터페이스에서 무작위 모드 사용” 가 사용함이 되어있어야한다. 그렇지 않으면 내 껏만 받음

 

ARP : IP → MAC 주소로 변환해준다.

ARP 로 뿌리면 해당되는 IP주소가 응답을 하면서 MAC주소를 알려줌

who has 192.168.1.40? Tell 192.168.1.1

192.168.1.40이 누구에요? 192.168.1.1한테 말해주세요

192.168.1.40의 MAC주소는 74:5d:22:9b:14:a2  이야 ! 


3계층 네트워크 계층의 기능

 

서비스의 종류

  • 연결형: 종이컵 2개에 실을 연결해서 대화를 하듯 연결을 하는 것
  • 비연결형 서비스: 데이터나 경로가 미리 정해져있지않음 (데이터가 가는데 주소만 간다) - 주소만 가지고 가까운 길로 간다.

(비연결형 서비스)

  • 패킷(데이터와 헤더가 합쳐짐)이 IP주소(네트워크계층이니까) 를 가지고 서로 다른 경로로 전송되므로 도착 순서가 일정하지 않는다. -> 그래서 상위 계층(4 전송계층)에서 순서를 재조정해야한다.

IP계층의 핵심목적은 정보가 깨지는 걸 신경쓰는게 아니라 빨리 보내는 것.

  • 그렇기에, 패킷 분실 가능성이 있다
  • 패킷의 100% 도착을 보장하지 않는다.
  • 상위 계층에서 패킷 분실 오류를 복구해야한다.

IP 프로토콜

 

IP 프로토콜은 비연결형이다 = 품질을 보장하지않는다 (쿠팡맨은 보내면 끝이고 상위계층 쿠팡에서 물건을 보상해줌)

TCP 는 연결형 프로토콜

 

패킷을 분할/병합하는 기능을 수행한다.

IP 헤더는 32비트이다 = 32비트 = 4 바이트

0 ~ 31

 

5층으로 나누어져 있어서 4+4+4+4+4 = 총 20바이트임

맨 밑에 계층은 요즘엔 쓰지 않아 빼고 계산

 

반 바이트 = 버전 넘버

Ipv4 = 4byte

Ipv6 = 6byte

 

읽는방법 : 각 층이 끝나면 왼쪽 으로 돌아감

version number : 우리는 ipv4를 사용함 = 4byte

header length = 3계층의 해더크기는 20바이트 이다 //  1 = 4byte // 20 byte = 5

MAC source address | MAC destination address | type(length) | 패킷 (version number 4 + header length 5)

 

모든 패킷의 시작점은 45 로 시작한다.

45가 아닌 숫자가 나오면 비정상으로 잡아내야한다.

 


 

  • service type : 세팅값에 따라 어떤건 빠르고 어떤건 늦게 간다 (하지만 지금은 의미가 없어져서 사용하지 않는다) = 0 → 만약 숫자가 0이 아니고 1이라는 숫자가 하나라도 나오면 잡아내야함

Covert Channel Hacking 은밀한 채널 해킹: 모든 OS는 service type 이 안쓴다는 걸 알기 떄문에 해석을 하지 않음, 해석하면 속도가 느려지니까 → 해커들이 좀비pc 에 명령을 때려서 시그니처를 하는데, 데이터에 attack 명령어를 쓰는게 아니고 service type 에서 명령을 때린다. 왜냐? 아무도 사용하지 않기 때문에 걸리지 않는다.

 

  • packet length(fragment offset) : 패킷의 최대 사이즈 1500 // 8바이트 단위로 계산한다.
  • Time to live : 패킷이 살아남기 위한 시간 // 예를들어 100으로 설정되어 있으면 라우터를 지날떄마다 하나씩 깐다 0이되면 소멸한다. - 쓰레기 패킷을 없애기 위함 (전송은 안되고 라우터끼리 핑퐁을 하는 등 ..)
  • transport : TCP 를 보낼지 IP를 보낼지 적어놓고 받는쪽에 배려를 한다는 의미. 윗계층 누구한테 줘야하는지를 적어놓음
  • header checksum: hash값으로 혹시나 의심스러울때 비교를 했는데 같으면 무결성 o 같지 않으면 무결성에서 어긋나서 잡아내야함 // UDP 17 TCP 6

*UDP 17과 TCP 6은 각각 UDP와 TCP 프로토콜을 식별하는 프로토콜 번호입니다. 이 번호들은 IP 헤더에서 해당 프로토콜을 구분하는 데 사용됩니다.

 

scanner : 내가 상대방을 공격하기 전에 상대방의 정보를 꺼내 오는 것 ( Nmap )

 

 

 

  • 1기가를 전송하기 위한 패킷이 몇개가 팔요한가 ?

1기가 / 1500byte (패킷의 최대 사이즈)

하지만 헤더 20을 빼면 1480 만 한번에 전송될 수 있다 =

한번에 1기가를 받지 않고 1500byte씩 나눠서 받는 이유는 중간에 전송중 에러가 나면 1500만 다시 보내면 되지만 1기가로 보낼경우 1기가를 처음부터 다시 보내야한다. 

 

  • identification: 어디 데이터에서 왔는지 식별을 한다. A B C를 한번에 다운받는다고 가정을하면. A에서 쪼개고 B에서 쪼개서 전송되고하면 섞인다. 이것을 식별하고 모으기 위한 장치
  • DF (Dont Fragment): 분할하지 마라 / 있는 그대로 전송하면되고 분할하지 마라 (쪼개서오면 잡아내면된다)

 

fragmentation attack : 분할하지않아야 하는 것을 분할해서 하는 공격.

(패턴 = rule = signiture = 침해사고 = 악성코드// 모두 같은 말)

정보보호 기술은 패턴매칭 밖에 없다

V3 백신이 하는게 헤더와 데이터에 어택이 있으면, 어택 공격을 잡아내는 것 안잡히게 하려면 fragmentation을 해서 쪼개지 않아야 할 것을 강제로 쪼갬 → 보안장비를 속여 식별이 안됌 → 끝에 가면 헤더를 때고 합치기 떄문에 공격이 된다.

 

  • MF (More Fragment?) : 전송된 데이터가 완전히 다 들어왔는지 확인하는 장치 (내 뒤에 조각이 더 있나요? 하고 물어봄- 조각이 더 있으면 1 이라고 답함 그리고 마지막에 more fragment의 응답은 0으로 끝난다. - 반드시 마지막은 0으로 끝나야한다.)

—---------------------- 문제 -----------------------

IP 프롤토콜

**분할의 예

  • IP 헤더를 제외한 전송 데이터의 크기가 380 바이트
  • 패킷의 최대 크기가 128 바이트 일경우**
  1. Identification : 우리가 설정하는 값
  2. Packet length: 패킷의 최대크기 128바이트 에서 헤더 20을 떼고 봤을때 108바이트. Fragement Offset을 구하기 위해서는 8바이트로 나눠서 정수로 떨어져야 한다. 그래서 104 로 데이터 크기를 임의로 줄여 8바이트로 나눴을때 정수로 결과가 나오게 한다. (기존 108→104로 줄이면서 남은 값들은 모아서 맨뒤에서 처리할 예정)

104 + 헤더20 = 124 가 하나의 packet legnth(패킷 길이는 헤더값을 포함함) 값이 되는 것

최종적으로 124 / 124 / 124 / 88 이 나오는데 헤더크기 20을 각각 떼고 총 합을 더하면 데이터의 크기 380바이트로 데이터 전부 정상 전송하게 된다.

MF (more fragment) : 너 뒤에 더 있니? 있으면 1 마지막은 무조건 0 이되어야 한다.

Fragment Offset: 8바이트로 나눠져야함/ 패킷의 최대 크기 128바이트에서 헤더 20 떼고 108바이트에서 8로 나눴을때 정수로 떨어지게 하기 위해 104바이트로 줄임 → 이값을 8바이트 단위로 나누면 104/8 = 13

오프셋은 중첩이 되어 표에 작성된다. 13 / 26 / 39 … 데이터의 크기 380바이트가 모두 전송될때까지 늘어남

결과표

 

----------------------------

 

 

tracert www.google.com

tracert는 Windows에서 네트워크 경로를 추적하는 데 사용되는 명령어로, 특정 도메인이나 IP 주소까지의 경로를 보여줍니다.

300x250
320x100

OSI 모델은 분업화가 되어있다 호환성과 속도를 위해서.

예를들어, 하드디스크가 고장이 났을 경우 하드디스크만 교체하면 된다. 이처럼, 한 계층이 고장이 나도 그 부분만 바꾸면 되기 때문 효율이 좋음 + 개별적으로 패치,업그레이드가 가능하다.

 

 

(송신자 - 모니터)

  • software layer- 응용프로그램 (웹브라우져, 카톡 ..)

7계층 | 응용계층 - (http 웹브라우저)

 

6계층 | 표현계층 - (압축, 암호기능)

5계층 | 세션계층 - (압축, 암호기능)

 

  • Heart of OSI - OS (하드웨어 구동 - 램카드는 하드웨어이기 떄문에 램카드 위에 있어야함)

4계층 | 전송계층 - (1,2,3계층까지의 작업에 에러나 오류가 생기면 고쳐주는 것)

 

  • Hardware layer - LAN카드(데이터가 램카드에 저장됩니다. // 컴퓨터 안에서 통신담당)

3계층 | 네트워크계층 - (IP 주소)

 

2계층 | 데이터 링크 계층 - (에러와 오류를 복구,수정을 위함) → 데이터링크와 물리계층을 하나의 계층으로 봐도 상관없다.

 

1계층 | 물리계층 - (신호를 주고 받으면 끝남)

 

 

통신은 크게 3가지 방법으로 한다 --> 무선: 주파수 // 유선 : 전기 // 광통신 : 매체가 모인 것


Media (매체) : 정보가 흘러나가는 공간

데이터의 헤더 : 데이터의 부가정보 (계층에서 받은 데이터를 잘 표현하기 위함, 해석이 된다.)

계층 간 프로토콜: 계층 간에 알아 먹을 수 있는 통신규약

시스템공간: 컴퓨터가 컴퓨터 역할을 하기 위해 정의한것

시용자 공간: OS 밑단에 대해 사용자가 필요로 하는것

프로세스: 프로그램에서 지금 실행되고 있는 것

ICMP : internet control management protocol

 

OSI 모델은 크게 4계층으로도 불려진다.

 

이를 OSI 산업표준 이라고 한다.

1,2계층 이더넷 프로도콜

3계층 아이피 프로토콜

4계층 TCP 프로토콜을 사용

7계층 프로토콜이 너무 많다

 

 

1 bite = 2^8 = 0 ~ 255

 

  • 4계층

TCP/UDP : 전송 계층 프로토콜

TCP : 신뢰성 o - 말한대로 전달한다

UDP: 신뢰성 x - 말한대로 전달하지 않는다

  • 3계층

ARP (Address resolution protocol) - IP를 MAC주소으로 변환

RARP - MAC주소를 IP으로 변환

 

URL은 알고 있는데 IP 주소(destination code )는 모른다. 그떄 DNS 에게 URL 주소를 물어보면 IP주소로 변환을 해줌

source MAC 1.1.1.1.1.1 내가 알고 있음 (6 bite) + destination MAC ( 여기서 말하는 MAC주소는 PC와 가장 근접한 라우터의 MAC주소를 물어보는것)

 

routing table :

라우터를 키면 BGP protocol 을 이용해 routing table에 가는 길들을 다운받는다.

라우터는 포트가 4개가 있다.

 

subnet mask:

서브넷 마스크(subnet mask)는 네트워크에서 IP 주소를 서브넷으로 나누는 데 사용되는 값입니다

내 아이피 주소를 가지고 어디까지가 네트워크 주소인지를 판단할때 사용 ( 네트워크 주소와 호스트 주소 나눈 것을 판별하는 것)

 

게이트웨이 (Gateway): 우리 PC가 인터넷 세상으로 나가기 위해서 처음 만나는 라우터(별명)

000.000.000 | 000

network | host

 

Host : 한번 물어본 것은 기록하는 것

보조 DNS : 메인 DNS가 고장났을 때 사용하기 위함

 

결론

내 PC에서 MAC 주소를 가지고 ARP 를 사용해서 → 게이트웨이(처음만나는라우터)의 IP 주소를 알 수있다.

** PC에서 ARP 를 가지고 나에게 연결된 모든 라우터에게 브로드캐스트를 보낸다

예를들어, google에 접속시도를 하는 중일경우, 구글로 가는 길목에 해당되는 라우터에서만 응답을 받는다.

 

브로드캐스트(broadcast)는 네트워크에서 특정 정보를 모든 장치에 동시에 전송하는 방식입니다.

unicast :한 사람의 특정 수신자에게만 데이터 패킷을 전송하는 방식

받는 쪽으로 리마인드

랜카드에서 받았을때 (내가 첫 게이트웨이일경우)


토막상식 : 4계층에서는 데이터를 푸쉬해서 7계층으로 올린다.

 

7계층 : URL

4계층 : port 주소 (어느 프로그램에게 가야 하는지를 알려줌) (2 bite)

3계층 : IP (4 bite)

1,2계층 : MAC (6bite)

 

- 7계층 URL

송신자는 PC에서 Google에 접속하기 위해 웹 브라우저를 열고 URL 을 입력한다.

DATA 만 내려줌

 

- 4계층 port 주소 (어느 프로그램에게 가야 하는지를 알려줌) (2 bite)

header를 붙임| DATA

Soruce port(ex 2000 port) + Destination port (ex 80 port) | DATA

작업이 끝난 후 DATA 만 내려줌

 

- 3계층 IP (4 bite)

header를 다시 붙임 | DATA

Source IP + Destination IP | DATA

URL을 입력하면, 먼저 DNS(Domain Name System)에 쿼리를 보내 해당 도메인의 IP 주소를 조회합니다.

DNS 서버는 해당 도메인에 대한 IP 주소를 반환합니다. 이 IP 주소가 목적지 IP가 됩니다.

 

DATA 만 내려줌

 

- 1.2계층 MAC (6bite)

header를 다시 붙임 | DATA

Source MAC+ Destination MAC | DATA

 

게이트웨이(처음만나는 라우터)의 IP 주소는 알고 있고 있지만, 난 MAC 주소를 알고 싶기때문에

ARP를 사용해서 브로드캐스팅 -> 해당 IP 주소를 가진 장치가 자신의 MAC 주소를 포함한 ARP 응답을 송신 장치에게 전송합니다.

 


송신과정

 

PC→A→B→C→D->Google

 

A라우터 -> B라우터 로 가는 과정

  • 1,2계층에서 씌운 헤더 해석후 데이터만 3계층으로 보냄
  • 3계층 네트워크계층(os)에서 데이터를 확인후 본인에게 온 것이 아니므로 다시 1,2 계층으로 보냄

Source MAC(A라우터의 MAC주소)+ Destination MAC(B라우터의 MAC주소) | DATA

 

 

A라우터가 브로드캐스트해서 google 로 가는 다음 목적지 라우터 B의 IP주소를 받고 ARP를 통해 MAC주소를 받음

 

source MAC + Destin MAC 가 완성이 되었으면 header를 떼고 전송하여 다음 라우터 B로 간다.

 

라우터 B 는 네트워크계층(os)에서 데이터를 확인후 본인에게 온 것이 아니므로 다시 1,2 계층으로 보냄

 

위의 작업을 반복하고 C->D 로 넘김

300x250

+ Recent posts