2024. 1. 14. 15:06ㆍInformation Security 정보보안/Network Security 네트워크 보안
배울 내용:
PDU
Packet Data Unit
ISO OSI 7 layer model
Incapsulation
Decapsulation
네트워크 캡슐화
네트워크 헤더
MAC
NIC
LAN Card
네트워크 포트번호
제가 지금 부터 작성하는 모든글은 제가 공부기록용이기 때문에 정확하지 않을수 있음을 알려드립니다.
틀린게 있으면 댓글로 써주시면 고치겠습니다.
이번시간에서 좀더 기본적인 개념부터 알고 진행할것이다
PDU (Protocol Data Unit)
프로토콜 데이터 유닛
네트워크 계층이나 프로토콜 간에 전송되는 데이터의 단위이다
Session~ Application 계층에는 Data 또는 Datagram (Message ) 라고도 불린다
네트워크 계층의 Packet 만 일정한 길이를 가지고 있다
incapsulation , Decapsulation
데이터를 보낸다고 생각해보자
ping 192.168.10.100
을 하면 ping(프로그램) 이 packet을 192.168.10.100 으로 보낸다
또다른 예로 카톡을 적고 전송누르면
그러면 이때 Application 계층에서
Transport 까지 내려 보낸다
그런데 이과정중에 박싱을한다
이것은 헤더를 추가를 해준다는 것이다
이것은 바로 Encapsulation (캡슐화) 을 하는것이다
(박싱)
그러면 [ TH [M] ]
이렇게 TH(전송계층) 박스안에 M(message) 가 담긴다
그리고 다시 네트워크계층 박스에 넣어주고
다시 데이터링크 계층 까지 박싱을해서 보내준다
그러면
이런식으로 위에서부터 앞에 헤더가 추가 되면 2계층까지 왔을떄는
[ DH (DataLink Header) [ NH [ TH [ M ] ] ] ]
이렇게 담긴다
그러면 packet이 뭐냐고 물으면 [TH [M ]] 에
NH 를 붙여준것 이라고 불른다
즉 , 전송계층에서 내려온 것에 헤더를 붙인것
그러면 [ DH (DataLink Header) [ NH [ TH [ M ] ] ] ]
이거는 Frame 이라고 할수있다 .
그치만 하나 알아야할것은
네트워크 계층에 NH [ TH [ M ] ]
이렇게 되있는데 라우터는 NH 만 인식하고 그안에 TH [ M ]
를 전부 Data로 인식한다
더 내려가면 데이터링크 계층에선 [ DH [ NH [ TH [ M ] ] ] ]
스위치는 DH 만 인식하고 그안에선 [ NH [ TH [ M ] ] ]
데이터로 인식한다
에러를 체크하기위에 이러한 헤더 맨뒤에 Trailer 라고 있다
또 데이터 링크계층에는 서브계층으로 2계층으로 또 나뉘는데
LLC (Logical Link Control)
(논리적 제어)
MAC (Media Access Control)
(물리적 제어)
두 계층은 함께 작동하여 데이터가 네트워크를 통해 안정적이고 효율적으로 전송될 수 있도록 하는데
LLC는 프레임을 처리하고 오류를 관리하는 반면,
MAC은 물리적 전송 매체에 대한 접근을 제어하고 각 장치 간의 데이터 전송을 조정한다
에러가 있으면 조용히 컨트롤해가면서 매핑을함
그러면 다시 메인으로 돌아와 7 계층에서 2계층까지는 왔다
그러면 1계층인 Physical layer 에는 어떻게 가야할까?
왜냐면 PDU가 BITS 단위이기때문에 0 과 1 로밖에 구분할수밖에 없다
프레임을 Bit로 만드는 장비로 만들어준다
NIC (Network Interface Card) (또는 LAN Card ) 로 만들어준다
이게 NIC(Lan Card) 다
NIC 의 I 는 interface인데 이는 나와 상대방과 연결되는 길목인데
논리적인 연결되는 지점이라고 보통말한다
프레임을 bit로 바꾸는것 -> 이걸로 bps 을 알수있음
이 NIC 는 반대로
Bit 를 Frame으로도 만들어준다 ( bit 를 모아 frame을 만들어준다)
그러면 다시 만들면
[ DH [ NH [ TH [ M ] ] ] ]
이렇게 만들어지는데
그러면 2계층장비에 Switch 장비가 있는데
이 장비가
DH 를 읽고 제거(Decapsulation) 해주고
역 캡 슐 화
[ NH [ TH [ M ] ] ] 그리고 이걸 3 계층으로 올리면
또 NH 를 읽을수있는 Router(라우터가) 있고
그다음에는 점점올라가서 다시 M 가 남게 된다
그리고 그걸 사용자가 읽게 되면 카톡을 읽는걸 성공하는 것이다.
그리고 이것들은 잘 기억해놔야한다
어떤 필드가 들어있는지
1) ARP (Address Resolution Protocol)
2) Ethernet
3) IP (Internet Protocol)
4) TCP (Transmission Control Protocol)
5) UDP (User Datagram Protocol)
각각 계층마다 존재하는 ( 헤더 ) 것들이다
그래서 실질적으로는 4 계층에 TH [ M ] 에는
TCP [ M ] 이 붙는다
그리고 3계층에는 IP 가 있으니
IP [ TCP [ M ] ] 이렇게 붙고
2계층에는
Ethernet [ IP [ TCP [ M ] ] ]
이렇게 붙는다
이제 이것들이 BIT로 바뀌는 것이다
이걸 역순으로 하면 Decapsulation 되면서
다시 Message 만 남게 된다
여기서 좀더
실질적으로 좀더 들어가면
TCP 헤더가 들어가면 Port 번호가 붙는다
TCP 에는 42000 80 수신포트 도착포트 라는 곳에 넣어주면
IP 에는 49000 80 이렇게 들어가고
Ethernet 에는 MAC (물리적주소) 가 들어간다 (source map ,destination map)
이렇게 식별자가 들어간다
아까 말했던 Ethernet은 2계층이고 MAC은 물리계층주소로 불리지만
DATA Link 계층의 프로토콜이다
예를들로 무선으로 연결되면 논리적인 링크일까?
그치만 2계층은 물리적인 계층인데?
논리적인 Address 는 IP 고
물리적인 Address는 MAC 이다
이렇게 이해하면 된다
자이제 다시 전체를 보자
이제 좀더 보일지도 모른다 그래도 잘 모르거나 헷갈리면
위로가서 다시보도록 하자
1, 2 계층과 3계층에는 이렇게 들어있다
HUB에는 이 두개에 어느곳에도 속하지않는다
- 허브는 OSI 모델의 어떤 계층에도 명확하게 속하지않고
- 허브는 가장 기본적인 네트워킹 장비로, 물리적 계층(1계층)에서 동작한다.
누가 Ethernet Packet 이라고 말하는 무식하다고 소리들을수있다
Ethernet 은 2계층이니깐 Ethernet Frame 이라고 해야한다
그러나 IP frame 이라고 하는걸 들어봤을것이다
이것또한 Network Packet 또는 IP Packet 으로 하는게 기술적으로 정확하다
이런식으로 여러개있지만
Application 에는 TCP 기반인 (FTP , SSH , Telnet , HTTP , POP3 , IMAP) 이 있고
UDP 기반인 ( DHCP , TFTP , DNS SNFP)
Transport 에는 TCP 와 UDP 가 있다
참고로 여기나온것들의 포트 번호도 외우는게 좋다
TCP
FTP(20,21) ,SSH(22), Telnet(23),HTTP(80), POP3(110), IMAP(143)
UDP
DHCP(67,68), TFTP(69),DNS(53),SNMP(161,162)
포트 번호
포트 번호도 65536 개가있다
그리고 이건 또 3개로 나뉘는데
1) Well Known Port : 0~1023 개로 잘알려진 포트가있고 (위에 나온 포트들)
2) Registered Port : 1024~ 49151 사용자 또는 기업에 의해 사용
3) Dynamic Port : 49152 ~ 66535 동적 또는 개인 포트
65535 까지인이유는 숫자가 0 부터 시작이기 떄문이다
자 그럼이제 위에 것을 토대로
이걸보면 어느정도 이해할수있을 것이다
PC에서 Ethernet card (LAN Card) 로 라우터에 있는 LANCard 로
Frame을 만들어 이더넷 헤더를 읽고 (bit를 보내서 그걸모아서 frame 만듬)
이제 왼쪽에 Router 에서 IP 를 S0(Switch 0 ) 있기에 ethernet으로 바꾸고 오른쪽 Router가 IP 를 읽게
Ethernet 없애고 IP 읽게하고
4.4.4.3 옆에 E0 (ethernet 0 ) 이있으서 다시 Ethernet 헤더를 넣어서
보내고 전송 4.4.4.1 에는 NIC 가 당연히 있으니 PC에 Router 가 읽어봤는데
목적지가 4.4.4.1 이면 더 보낼데가 없음으로 IP Header를 Decapsulation 하고
남은 포트번호인 80 이 있고 (Apache server인 80 번) 그리고 Message로 확인
이런식으로 통신이 가능하다
이쪽부분은 헷갈릴수있는데
이러한 진행방향이다
상대측 Point to Point 할때
[ I P ] [ TCP ] [ M ]
E0 에서 S0 으로 나올때
HDLC 라는게 붙고
[ HDLC ] [ I P ] [ TCP ] [ M ]
오른쪽으로 다시 S0 에서 E0 할때
Ethernet으로 바뀔때
위에 과정중 Decapsulation 하는 과정중에도 [ TCP ][ M ]
남는다 (전송계층 가장마지막까지 헤더가 붙어있다 , 그게 TCP 든 UDP든)
Transport : End to End (끝 과 끝)
DataLink : Flow, Error , Link
Point to Point
얼핏보면 전송계층과 데이터계층이 비슷한데
End to End 와 Point to Point 는 틀리다
아까말햇던 Decap 과정에는 2계층 프로토콜을 여기저기 바뀔때
여러번 바뀌지만 전송계층은 안바뀌기 떄문이다
End to End는 끝까지 제어가 가능해서 End to End
Point to Point 는 여러번 헤더가 바뀌어 제어가 끝까지는 불가능해서 Point to point
그리고 나머지 구조를 보고 기억하자
이렇게 되고 좀더 깔끔하게 보면
이렇게 된다
그럼 20000