안녕하세요. 해당 강의에서는 채팅 서버가 하나지만 만약 채팅서버를 2개 운영한다고 가정했을때 (A.jar, B.jar) 배포를 위해 A jar 를 내리고 다시 올릴때 서버가 내려가기전 A jar 의 socket 객체정보를 B jar 로 보내려면 어떤 방법을 사용해야할까요? socket 을 직렬화해서 보내려고 했는데 socket 은 제가 만든 클래스가 아니다보니 Serializable 를 상속받지못해 불가능할것같은데.. 실무에서는 채팅 이중화서버운영 무중단 배포를 어떤식으로 하는지 궁금합니다 ㅠㅠ .. 강의보다 심화된 내용이지만 해당 부분에 대한 지식을 쌓기가 힘들어서 글을 작성하게 되었습니다. 감사합니다.
클라이언트에서 공격 명령을 하여 ServerRPCAttack이 실행되는 코드입니다. 월래는 NetMulticast를 사용해 서버와 모든 클라이언트에서 애니메이션이 실행되도록 패킷을 전달했지만, 명령을 내린 클라이언트만 패킷전송을 제외시키기 위해서 다음과 같이 짠건 이해했습니다. 하지만 이해가 안 가는 부분이 있습니다. 명령을 내린 클라이언트에 대응하는 (서버상의)액터가 다음 코드를 실행할텐데, 결국 서버상에 있는 클라에 대응하는 액터들은 모두 역할이 [ Authority / AutonomousProxy ] 이거 아닌가요? 근데 if문에서 simulatedProxy만 걸러냈다고 말씀하시는 부분이 이해가 안갑니다.
3강의 '액터의 접속을 소유하다'라는 표현이 잘 이해가지 않습니다. 강의를 반복해 듣고 공식문서를 정독해본 결과 아래와 같이 결론을 내렸는데 혹시라도 틀린 부분이 있다면 정정해주시면 감사할 것 같습니다! ‘액터의 접속을 소유한다’ = ‘액터가 해당 접속에 소유된다’ = 액터가 해당 클라이언트(PlayerController)가 소유한 접속에 접근할 수 있는 패밀리에 속하게 된다.
public class SessionManagerV6 { private List<SessionV6> sessions = new CopyOnWriteArrayList<>(); public void add(SessionV6 session) { sessions.add(session); } public void remove(SessionV6 session) { sessions.remove(session); } public void closeAll() { for (SessionV6 session : sessions) { session.close(); } sessions.clear(); } } session들을 담는 List로, ArrayList 대신에 동시성 컬렉션인 CopyOnWriteArrayList을 사용하고, 각 메소드에서 synchronized 키워드를 제거하는 방식도 유효한가요? 만약 유효하다면, 기존 방식(synchronized )과 새 방식(동시성 컬렉션) 중 어느 방식을 언제 사용하는 것이 적절한가요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 설명해주신 예제를 보니 메모리 스트림이나 콘솔 스트림에는 close()를 사용하지 않네요. ByteArrayStream나 PrintStream 같은 경우에는 메모리를 대상으로 하는 스트림이라 GC 대상이 되어서 따로 close() 메서드를 호출하지 않아도 되는 건가요?
해당 강의에 10분 쯤을 보면 선생님께서 다음과 같이 예시를 들어주셨습니다. 부산지사의 철수(ip 3.3.3.10)이 서울지사의 DB서버(5.5.5.100)으로 패킷을 보내면 IP 패킷이 다음과 같다. IP 출발지 : 3.3.3.10 도착지 5.5.5.100 여기서 궁금한 것은 DB서버의 5.5.5.100은 private한 주소일텐데 어떻게 해당 ip주소로 도착지 ip 주소 헤더가 설정될 수 있는지가 궁금합니다. 제 생각에는 다음 두 가지 경우 중 하나가 아닐까 싶은데 맞다면 어떤 것인지 아니라면 어떻게 되는지 가르쳐 주실 수 있을까요? ISAKMP를 이용하여 터널링 하는 과정에 서울지사와 부산지사의 private network가 하나로 통합되기 때문이다. 원래는 NAT 과정이 있으나 이해하기 쉽도록 돕기위해 다음과 같은 과정이 생략된 것이다.
- 학습 범위를 넘어서는 개인적인 문의나 기타 회사 정책 및 운영에 대한 문의는 답변하지 않습니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. 2계층 장치인 스위치에서 프레임 전송 시 발생한 오류를 복원하거나 재전송한다고 하셨는데, 4계층인 전송계층의 주요역할에도 오류 제어가 있어서 혹시 그 둘의 오류 제어 차이점이 따로 있을까요?
안녕하세요 교수님. 친구들과 현재 언리얼로 1대1 멀티플레이 게임을 제작하려고 있습니다. 저는 서버 쪽을 맡아 지금부터 공부해나가는 상황입니다. 하지만 아직 2강까지 밖에 안들은 시점이어서 그런지, 저희가 프로젝트를 진행할 때 어떤 식으로 협업을 하면 될지 머리에 그려지지 않습니다. 저희같은 소규모 팀에서는 클라이언트 / 서버 개발을 어떻게 나누어 진행하면 좋을지 조언 주실 수 있으실까요? 좋은 강의 제공해주심에 항상 감사합니다.
안녕하세요! 수업 잘 듣고 있습니다. 다름이 아니라 TTL과 단편화 주제로 말씀하실 때 확인하고 싶은 과정이 있어서 질문 드립니다. 수신 라우터가 기존 패킷보다 MTU가 작을 경우 segmentation이 일어나고, 이를 다시 합치는 것은 수신하는 서버에서 한다고 하셨는데 이때 말씀처럼 IP 즉 L3에서 분할 된 패킷을 합치고 L4로 보내기 위해 TCP에서 IP 헤더를 제거한다음 socket의 버퍼에 넣어뒀다가 app으로 보내는 것을 TCP에서 segment를 다시 조립한다고 말씀하신 걸까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 새로 이직을 준비하는 과정에 있어서 수강을 제대로 하지 못했습니다ㅜ 연장이 가능할까요,,
[강의:Ethernet 채팅 프로그램 개발] 안녕하세요. 선생님! 오랜만에 질문드리네요 ㅎㅎ 강의 수강중 이렇게하면 해킹할수 있겠다? 라는 생각이들어 질문남깁니다! [ 상황 ] 특정 게임서버가 있습니다. 게임서버에는 정의한 패킷이 1개가 있고 계정 ID를 받으면 관련된 DB 데이터를 변경하는 로직이 작성되어있습니다. 여기서 1) 게임서버에서 수신된 패킷이 해당 유저가 보낸게 맞는지? 패킷 암호화 처리 없음 2) 게임서버에서 수신된 패킷의 계정 ID의 Session 데이터(연결정보)가 있는지? 체크하지 않음 라고 했을때 Ethernet/IP(게임서버 IP)/TCP(게임서버 Port)/Segment(정의한 패킷)를 수동으로 만들어서 보내면 해킹처럼 게임서버에 내가아닌 다른 계정의 ID를 보내 처리하게 할수있겠다. 라고 생각이 들었는데요. Q. 네트워크딴에서 체크섬 말고는 따로 보안처리가 없는것같아 이런 시나리오가 가능한지 궁금합니다. 추가내용) 강의를 이어서 더 보니, 게임서버가 TCP통신을 하고있었다면 Seq까지 맞춰야하네요.(Seq번호가 맞지 않으면 게임서버의 운영체제 단에서 패킷 버려짐로 이해) 이러면 해킹하는게 힘들것같네요 ㅎㅎ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 검색 엔진이라는 용어를 잘 이해를 못 하겠습니다. 일시적인 리다이렉션 부분에서 "검색 엔진 등에서 URL을 변경하면 안됨"이라는 글이 있는데 구체적 예시를 들어서 이 문장을 설명해 주실 수 있을까요??
강의 51초 질문드립니다. 클라이언트-서버 모델에서 유저1 -> 게임서버로 데이터를 전달한 것까지는 알겠습니다. 그런데, 게임 서버 -> 유저2, 유저3로의 전달은 어떻게 이뤄지는 건가요? 게임 서버에서 유저2, 유저3의 public ip와 port는 알고 있지만 private ip와 port는 모르지 않나요..?
안녕하세요 선생님. DHCP 브로드캐스트에 대해 질문이 있습니다! DHCP 설정에는 기본적으로 4가지 단계가 존재한다. DHCP Discover DHCP Offer DHCP Request DHCP Ack 2번과 4번 과정에서 Flag 비트를 통해 Unicast or Broadcast 설정이 가능하다 고 이해하고 있습니다. 여기서 한 가지 의문이 있는데, 유니캐스트만 사용하는 것이 아닌 브로드캐스트도 제공하는 이유? 입니다. 2번과 4번에서는 클라이언트의 MAC 주소 를 알고있기 때문에 1:1 통신인 유니캐스트 를 통해 DHCP 서버 -> 클라이언트로 사용가능한 주소(IP, 게이트웨이, 서브넷 마스크 등)을 바로 전달하는게 효율적이지 않나요? 분명 이유가 있기 때문에 브로드캐스트도 지원하는 것 같은데... 이에 대해서 알려주실 수 있으실까요??? 감사합니다!