네트워크 26

TCP 연결과 게임버그

TCP 연결과 게임버그어떤 MMORPG게임에서 아이템 복제 버그가 발생하였다.이는 논리적 TCP연결과 물리적 링크간 차이를 이용한 시간차 공격이라 볼 수 있으며 연결이 사실은 End-point의 주관적 판단에 불과하다는 것을 보여준다. TCP연결이 착각이라고 말했는데 이것과 관련해서 악용한 해킹사례가 있었다.연결은 사실 End-point의 주관적인 판단에 불과하다. 즉 보안성이 전혀없는 판단이라는 것이다. 그래서 연결이 그 자체만으로 취약하다. 어떤 게임에서 이것과 관련한 버그가 있었다. 어떤 게임이 있으면 서버가 있을 것이고 서버에 사용자들이 접속해 있을 것이다. 예를들면 철수,영희,길동이가 접속해 있다 하자. 여기서 철수는 고렙이고 영희는 저렙이고 길동이라는 적군을 물리쳐야 한다고 하자. 그래서 고렙..

네트워크 2025.01.10

TCP에서의 연결이 착각...인가?

'파일 다운로드 중 LAN케이블을 분리했다가 다시 연결하면 어떻게 될까?' 우리가 TCP/IP로 어딘가 연결해서 파일을 다운로드 한다고 하자. 근데 여기서 LAN케이블을 잠깐 빼보자. 그러면 TCP연결은 어떻게 될까? 과연 이 연결은 유지될까? 끊어질까? 우리가 연결을 끊었다는 것은 L4에서의 연결이 끊어졌다는 것이다. 근데 내가 L1수준에서 LAN선을 잠깐 뽑았을 때 결과는 어떻게 될까? 일단 결론부터 보면 TCP 연결은 유지된다. 물론 우리가 LAN선을 얼마동안 길게 뽑아두었는지와 관련이 있을 것이다. 사실, RFC라는 표준문서에 기술되어 있는 부분과 실제 범용OS에서 구현되어 있는 것이 다르다. 그래서 이 부분에 대한 현실적인 판단이 필요한데 그리고 이러한 차이때문에 상단 process를 개발하는 ..

네트워크 2025.01.10

TCP, UDP 헤더 형식과 게임 서버 특징

TCP, UDP 헤더형식과 게임서버 특징TCP Header 형식 헤더형식을 구체적으로 봐보자. 위 그림의 가로 크기 체계가 32bit단위로 무언가 표현이 되어있다. Source Port와 Destination Port가 존재하며 이 포트는 16bit 주소체계로 되어있다. 이 포트의 값의 범위로 이야기를 해보면 0~65535번까지 가는데 문제는 이 포트중에 0,65535번은 쓸 수가 없다. 그래서 쓸 수 있는 포트의 개수는 2^16-2이다. 또한 이 포트중에 well-known 포트라는 것이 있는데 이게 무엇이냐면 HTTP(80), FTP(20, 21), TELNET(23) 등과 같이 기본으로 정의되어 있는 포트들이며 이것을 포트로 쓸 수가 없다. 그리고 그 다음으로 Sequence Number가 나오는데..

네트워크 2025.01.10

TCP 연결 종료와 상태 변화

TCP 연결 종료 과정(4way handshaking) 연결을 했다면 연결을 종료하는 절차도 있을 것이다. TCP 연결 종료과정을 보면 연결할때보다 조금 복잡하다. 이 종료과정을 4-way-handshaking이라고 한다. 여기서 1가지 대 전제가 있는데 특별한 이유가 없다면 클라이언트의 행동은 active하고 서버는 passive하다. 무슨 이야기냐면 연결하고자 하는 것이 클라이언트면 연결을 종료하는 것도 클라이언트여야 한다. 그게 보편적이다. 만약 서버가 연결을 끊겠다고하면 이런 경우는 엄청 특수한 경우이다. 그래서 클라이언트가 연결을 시작하고 연결을 종료하는 것이 일반적인 TCP 통신체계이다. 연결을 끊자고 하는 클라이언트는 established상태여야 연결을 끊을 수 있다. 그러면 클라이언트가 e..

네트워크 2025.01.10

TCP 연결 과정(3-way handshaking)

TCP 연결과정 (3-way-handshaking)TCP 연결 절차에 대해 이야기할 때 3-way-handshaking이 늘 등장한다. 연결이라는 것이 결론이라면 그 연결의 과정으로 등장하는 것이 3-way-handshaking이다. 위 그림처럼 어떤 client가 있다면 접속 대기중인 서버에 접속을 할 것이다. 위 그림의 세로 선을 timeline이라고 하고 어느 시점에 클라이언트가 192.168.0.20:80번의 서버와 연결을 하고자 한다. 여기서 클라이언트가 서버에 갔다가 돌아오는 시간을 RTT라고 하는데 50ms정도 걸린다고 하면 서버까지 가는 시간을 25ms, 돌아오는 시간을 25ms이다.이때 통신되는 단위가 Segment인데 일반적으로 Segment는 payload와 TCP-header로 구성..

네트워크 2025.01.10

TCP와 UDP 개요

TCP와 UDP 개요TCP에만 연결(Connection, Session) 개념이 있다.연결은 결과적으로 순서번호로 구현된다.연결은 '상태(전이)'개념을 동반한다.TCP는 배려남, UDP는 (배려가 없는) 나쁜 남자에 비유할 수 있다.인터넷이라는 환경에서 가장 중요한 L4프로토콜이 TCP와 UDP이다. 이것을 공부해보면 너무 할께 많다. 특히 TCP는 정말 복잡하다. TCP와 UDP 애기를 할 때 연결지향이냐 아니냐에 이야기를 한다. TCP의 연관검색어가 연결일 정도로 TCP는 연결이라는 개념이 존재하고 필요하며, UDP는 연결이라는 개념이 존재하지 않는다. 연결그런데 연결이라는 단어는 우리말로 번역했을 때 그런거고 영문표기상 2가지 단어가 혼재하는데 Connection과 Session이 존재한다. 예를 ..

네트워크 2025.01.09

Host란 무엇인가

Host는 이렇게 외우자 인터넷이라는 네트워크가 등장함에 기존의 단어들이 바뀐다. 예를 들면 컴퓨터라는 것에는 PC와 모바일등 여러 형태가 있는데 이 컴퓨터가 네트워크와 연결이 되면 이때 이 용어를 Host라고 부른다.Host: network에 연결된(인터넷에 연결된) 컴퓨터 그리고 네트워크 그 자체를 이루는 host가 있는데 이는 보통 Switch이다. 그래서 Host를 지칭할때 크게 2가지로 분류가 되는데 End-Point와 Switch로 구분된다. End-Point(단말기=단말에 있는 기계)는 네트워크 이용주체를 의미하며 대표적으로 Client, Server가 있고 이렇게 분류하는 것은 단말기의 역할에 따라 분류한것이다. 단말기 역할이 제공하는 쪽은 Server, 받는 쪽은 Client, 그리고 서..

네트워크 2025.01.09

OSI 7 Layer와 식별자

OSI 7 Layer와 식별자L1계층(Physical)은 전선의 규격, 신호의 세기, 전압의 크기등 이런 물리적인 것들을 다루는데 여기서는 생략을 하도록 하자. L2계층(Data-Link)에서는 Ethernet(유선 네트워크)에 대해 알아 볼 예정이며 L3계층(Network)에서는 기본적으로 많이 있지만 그 중에서도 Internet에 대해서만 알아볼 것이다. 그리고 인터넷 프로토콜 기반으로 돌아가는 L4계층에서는 TCP, UDP에 대해 알아 볼 예정이며 L5에서는 SSL(TLS) L7에서는 HTTP 프로토콜에 대해 알아 볼 예정이다. L7의 HTTP와 L5의 SSL을 합쳐서 HTTPS라는 프로토콜이 나왔다. 이런식으로 OSI Layer를 분류했을 때 L1~L2는 NIC + Driver, L3는 IP, L..

네트워크 2025.01.09

Ping과 RTT

Ping과 RTTping 유틸리티(프로그램)는 특정 host에 대한 RTT(Round Trip Time)를 측정할 목적으로 사용된다.ICMP 프로토콜을 이용한다.DoS(Denial of Service) 공격용으로 악용되기도 한다.ping이라는 말을 많이 들어봤을 것이다. 게임을 하면 게임서버에 사용자들이 함께 연결되서 사용자들이 게임을 같이 할 것이다. 문제는 여러 사람이 게임서버에 접속해 같이 게임을 하면 같은 화면을 보면서 진행이 될 것이다. 이 상황을 애기할때 동기화 이야기가 나온다. 내가 보는 화면과 상대방이 보는 화면이 같아야 한다. 만약 동기화가 깨져서 내가 보는 화면과 상대방이 보는 화면이 서로 다르다면 원활히 게임이 어려울 것이다. 이 때 재밌는 것이 나와 상대방이 게임서버 회선 연결상태를..

네트워크 2025.01.09

ARP(Address Resolution Protocol

ARPARP는 IP주소로 MAC주소를 알아내려 할 때 활용된다.보통의 경우 PC를 부팅하면 게이트웨이의 MAC주소를 찾기 위해 ARP Request가 발생하며 이에 대응하는 Reply로 MAC 주소를 알 수 있다.ARP는 Address Resolution Protocol인데 여기서 주목해야 할 단어가 Address이다. 이 Address가 무엇일까?이 Address는 2가지가 있는데일단 첫째로, IP주소가 있고둘째로 MAC주소가 있다.복습차원에서 다시 보면 컴퓨터의 주소라는 것은 2가지가 있는데 첫째로 컴퓨터에 인터넷이 연결되려면 IP주소가 필요하다. 그러니까 IP주소는 인터넷이라는 거대한 논리 네트워크에서 이 host를 unique하게 식별할 수 있는 식별자이다. 그런데 이 host에 네트워크 인터페이..

네트워크 2025.01.09