저희가 server & client 모드 두가지로 TCP 통신 실험을 하고 있습니다.
똑같이 100kbyte 되는 데이터를 전소하고 있습니다.
server mode에서 client(PC)에 데이터를 전송만 하면 평균 210ms 됩니다. 그러나 이때 client에서 일정 주기로 3byte 데이터 씩 server에 전송하면 80~100ms 이내로 변합니다. 이런 현상은 왜 발생 되나요?
또한 client mode에서 server(PC) 에 똑 같은 데이터를 전송하면 200~500ms 되고 심한 경우에는 700ms까지도 됩니다. 이때 PC에서 3byte데이터를 주기적으로 주어도 마찬 가지입니다.
TimeOut에 관하여 확인 해보니 ServerMode에서 socket을 생성 하면서 socket(i, Sn_MR_TCP, 80, Sn_MR_ND); 이렇게 delay 없이 설정 하였으나
client모드에서는 이와 같이 socket생성 함수를 쓰지 않고 connect(s,destaddress,destport)로만 했네요.
client 모드에서 connect(s,destaddress,destport) 하기 전에 socket(s, Sn_MR_TCP, 80, Sn_MR_ND);를 하면 이 socket은 no delay 로 되나요? 아니면 따로 처리 해야 되나요?
wiznet 홈페이지 loopback예제에서 보면 client 모드 동작에서 connect(s,destaddress,destport) 만을 하고 client 모드로 동작이 되기에 크게 생각하지 않았는데, client 모드 동작 전에 socket(s, Sn_MR_TCP, 80, Sn_MR_ND);을 해도 되나요? 한걱과 안 한것이 어떤 차이가 있나요?
추가 질문 하나만 더 하겠습니다.
IP를 FW에서 고정 으로 사용하면 공유기에 처음 접속 순간만 networklist에 w5100에 설정된 IP가 뜨고 이후 사라집니다.
PC나 컴퓨터에서 수동으로 IP를 설정하면 공유기 네트워크 리스트에 표시가 되는데 w5100를 이용하여 수동으로 IP 설정후 공유기네 나타나게 하려면 어떠한 동작이 더 필요 한가요? (DNS 기능을 사용하여 자동 할당 으로 하면 공유기에 표시 됩니다.)
“- Socket open → connect → send /receive ->close” 중에서 Socket open 이라는 말은 무었을 뜻 하난요 ? 이렇게 socket(2, Sn_MR_TCP, 19800, Sn_MR_ND);을 생성 하는 것을 말씀 하시는 건가요?
제가 socket(2, Sn_MR_TCP, 19800, Sn_MR_ND);으로 socket을 초기화하고 select(s, SEL_CONTROL)으로 socket 상태를 확인 해 보니 SOCKET_INIT(0x13) 이 였습니다.
“저희가 제공하는 Loopback application에서 Socket함수는 Sn_SR가 SOCK_CLOSED일때 사용됩니다.” 라고 하셨는데 connet함수를 다른 어 떤 상태에서 호출 가능한가요?
제가 sock_init 상태에서 connet를 해 보았습니다. 속도가 확연이 빨라 졌는지는 눈에 띄게 는 보이지 않습니다. 그러나 connet되는 반응 속도는 loopback에서처럼 빨리 반응을 해 주지 않고 있습니다.
client 모드로 사용하려면 socket(2, Sn_MR_TCP, 19800, Sn_MR_ND) 후 어떤 동작이여야 맞나요?