안녕하세요 오늘은 비기너 클래스에서 배운것을 정리해 보는시간을 가지겠습니다.
[1부] osi 7 layers, ip, nat, nat 네트워크, 내부 아이피 주소, 외부 아이피 주소, netmask
[2부] wireshark,tcp(syn, ack), udp, 3 way handshake, ARP, 2계층 -> mac, packet
데이터를 전송하는것을 7계층으로 나눈것입니다(5계층으로도 나눌수 있음, 7계층과 6,5 계층을 합친것!!)
데이터를 전송할때는 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 계층 순으로 실행되고, 데이터를 받을때는 그 반대로 실행된다.
5계층으로 나누어 쓸때 계층별 하는일 입니다.
5계층 -> 데이터를 보냄(누가 보냈는지만 쓰고!!)
4계층 -> 데이터에 Port 번호를 적음!!
3계층 -> 데이터에 ip주소를 적음!!
2계층 -> (보내는 과정?)
1계층 -> (보내는 과정?)
이것은 편지를 생각하면 쉽습니다.
우선 저희는 편지를 보낼때 그곳에 저희가 누군지 씁니다. 다음으로는 전송될 장소의 주소를 씁니다.
이과정이랑 osi 7 layers도 과정이 비슷합니다.
ip는 internet protocol adress로 인터넷 상에서 대화를 할려면 꼭 필요한 존재 입니다.
ip주소로 컴퓨터들은 누가 누구인지 인식합니다. 하지만 지금 우리가 쓰고 있는 IPv4는
40억개의 주소 밖에 못 만들어 냅니다. 하지만 저희는 40억개보다 더많이 사용하죠
그래서 사람들은 이것은 크게 내부 아이피 주소랑 외부 아이피 주소랑 나누 었습니다.
내부 아이피 주소는 공유기가 할당해준 아이피를 쓰는것 입니다. 어렇게 하면
공유기는 외부 아이피 주소를 쓰고 저희는 내부 아이피 주소를 쓰니까 1개로 여러대의
기기를 사용할수있는것 입니다.
그리고 내부 아이피 주소는 대부분 192.168...... 이런 형태 이다. KT는 조금 달를수도 있다.
외부 아이피 주소는 공유기 없이 직접 서버랑 대화 할수있는 ip주소를 말합니다.
우리가 밖에서 데이터를 쓰면 외부 아아피 주소를 쓰는것 입니다.
netmask는 내부 아이피에 연결할수 있는 기기 수를 나타내는 것 입니다.
netmaks는 대부분 255.255.255.0 이런식으로 되어 있습니다.
만약 이렇게 되있으면 그 공유기에 253개의 기기를 연결 할수있는것 입니다.
nat는 말그대로 해석하면 네트워크 주소 변환이다. 우리가 쓰는 ip주소는 2011년에 다 없어졌다.
그래가지고 사람들은 nat라는것을 만든것이다. nat는 외부 아이피 주소를 받은 공유기가 우리 한테 내부 아이피 주소를
할당해준것이다.
그럼 우리는 만약 게임 서버에 접속하고 싶다면 공유기 한테 저의의 내부 아이피 주소를
쪽지에 써서 보내고 공유기는 이걸 받고 공유기의 외부 아이피 주소로
게임 서버에 요청을 합니다 그다음 게임서버가 데이터를 공유기 한테 주면
공유기는 저희한테 데이터를 주는방식인 거죠
wireshark는 패킷 분석기이다. 우리가 인터넷을 할때 서버랑 주고 받은 내용을 전부
기록해 두는 것이다. 이것으로 저희는 서버랑 어떤 이야기를 했는지 분석을 할수있고
즉, 취약점을 찾을수있다.
이것을 사용하기도 쉽지만 아주 강력한 도구 이다.
tcp는 네트워크 프로토콜중 하나로, osi 7 layers에서는 4계층에 해당된다.
이것을 패킷을 이동할때 쓰이는 프로토콜 이고, 데이터의 이동에 신뢰성과 정확성을 둡니다.
위와 같은 과정을 거쳐 tcp는 네트워크 통신을 할때 신뢰성과 정확성을 둔다.
그리고 이 과정을 조금더 고급지게 말하면 3 way handshake 이다.
tcp연결을 도와주는 프로토콜 입니다. 그리고 3 way handshake의 종류에는 ack,syn이 있습니다.
이쪽에서는 syn은 질문을 의미한다고 생각하면 되고, ack는 대답을 의미한다고 생각하시면 됩니다.
위 과정을 조금 설명해보면 우선 client가 server한테 "너한테 할말 있어"라고 말합니다.
그다음 server가 "어? 그래? 그럼 내가 열어줄게. 그니까 너도 열어줘"라고 말합니다.
그럼 clinet는 "그래 알겠어 나도 열어줄게!!" 라고 말하는것 이죠
다음부터는 이제 client와 server가 data를 주고 받을수 있는것 입니다.
udp는 tcp의 반대라고 생각하셔도 됩니다!! tcp는 데이터의 신뢰성과 정확성에 중심을 두었다면,
udp는 속도에 중심을 둔다고 생각하시면 됩니다. 그래서 udp는 속도가 빨라야 하는 실시간 스트리밍등에서
쓰입니다!!
ARP는 주로 한 공유기 아래에서 서로 ip주소를 알는상황에서 mac주소를 알고 싶을때 쓰는
프로토콜 입니다. 저희 컴퓨터가 컴퓨터끼리 통신을 할때는 ip주소와 더불어 mac 주소도 필요합니다.
(서버랑 통신할때는 대부분 필요가 없습니다.)
컴퓨터 끼리 통신할때는 거의 대부분 mac 주소가 필요합니다. 하지만 대부분은 mac주소를
기억하지 않고 있죠. 그래서 쓰이는것이 ARP 입니다.
ARP는 쉽게 말하면 같은 공유기 아래에서 mac주소를 알아내기 위해 사용되는 프로토콜 입니다.
ARP가 작동되는 과정은 다음과 같습니다.
1. 우선 통신을 하고 싶은 컴퓨터를 A, 통신을 기다리는 컴퓨터를 B라 합시다.
2. 컴퓨터 A가 공유기 한테 이렇게 말합니다. "나 B컴퓨터랑 통신할건데 B컴퓨터 mac주소가 필요해
혹시 B컴퓨터 mac주소가 뭔지 물어봐 줄수있어??"
3. 그러면 공유기는 이렇게 합니다 "알겠어. 내가 방송해줄게. 저의 내부 아이피에
연결된 기기분들!! 혹시 아이피주소가 192.168.0.9인 B컴퓨터의 mac주소를 알수있을까요?"
4. B컴퓨터는 "어? 나네? 내 mac주소는 00:00:00:00 입니다~!!!"
5. 이제 통신만 하면 끝!!
악!! 드디어 다 정리 했네요
오늘도 열공 하세요!!
[노말틱 비기너 클래스] 1기 1주차(배운것) (0) | 2023.07.18 |
---|